You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@predictionio.apache.org by do...@apache.org on 2016/10/07 22:08:16 UTC

[35/50] [abbrv] incubator-predictionio git commit: Unbundle 3rd party documentation components

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.js
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.js b/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.js
deleted file mode 100644
index 63fa67a..0000000
--- a/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.js
+++ /dev/null
@@ -1,1419 +0,0 @@
-/*! jCarousel - v0.3.3 - 2015-02-28
-* http://sorgalla.com/jcarousel/
-* Copyright (c) 2006-2015 Jan Sorgalla; Licensed MIT */
-(function($) {
-    'use strict';
-
-    var jCarousel = $.jCarousel = {};
-
-    jCarousel.version = '0.3.3';
-
-    var rRelativeTarget = /^([+\-]=)?(.+)$/;
-
-    jCarousel.parseTarget = function(target) {
-        var relative = false,
-            parts    = typeof target !== 'object' ?
-                           rRelativeTarget.exec(target) :
-                           null;
-
-        if (parts) {
-            target = parseInt(parts[2], 10) || 0;
-
-            if (parts[1]) {
-                relative = true;
-                if (parts[1] === '-=') {
-                    target *= -1;
-                }
-            }
-        } else if (typeof target !== 'object') {
-            target = parseInt(target, 10) || 0;
-        }
-
-        return {
-            target: target,
-            relative: relative
-        };
-    };
-
-    jCarousel.detectCarousel = function(element) {
-        var carousel;
-
-        while (element.length > 0) {
-            carousel = element.filter('[data-jcarousel]');
-
-            if (carousel.length > 0) {
-                return carousel;
-            }
-
-            carousel = element.find('[data-jcarousel]');
-
-            if (carousel.length > 0) {
-                return carousel;
-            }
-
-            element = element.parent();
-        }
-
-        return null;
-    };
-
-    jCarousel.base = function(pluginName) {
-        return {
-            version:  jCarousel.version,
-            _options:  {},
-            _element:  null,
-            _carousel: null,
-            _init:     $.noop,
-            _create:   $.noop,
-            _destroy:  $.noop,
-            _reload:   $.noop,
-            create: function() {
-                this._element
-                    .attr('data-' + pluginName.toLowerCase(), true)
-                    .data(pluginName, this);
-
-                if (false === this._trigger('create')) {
-                    return this;
-                }
-
-                this._create();
-
-                this._trigger('createend');
-
-                return this;
-            },
-            destroy: function() {
-                if (false === this._trigger('destroy')) {
-                    return this;
-                }
-
-                this._destroy();
-
-                this._trigger('destroyend');
-
-                this._element
-                    .removeData(pluginName)
-                    .removeAttr('data-' + pluginName.toLowerCase());
-
-                return this;
-            },
-            reload: function(options) {
-                if (false === this._trigger('reload')) {
-                    return this;
-                }
-
-                if (options) {
-                    this.options(options);
-                }
-
-                this._reload();
-
-                this._trigger('reloadend');
-
-                return this;
-            },
-            element: function() {
-                return this._element;
-            },
-            options: function(key, value) {
-                if (arguments.length === 0) {
-                    return $.extend({}, this._options);
-                }
-
-                if (typeof key === 'string') {
-                    if (typeof value === 'undefined') {
-                        return typeof this._options[key] === 'undefined' ?
-                                null :
-                                this._options[key];
-                    }
-
-                    this._options[key] = value;
-                } else {
-                    this._options = $.extend({}, this._options, key);
-                }
-
-                return this;
-            },
-            carousel: function() {
-                if (!this._carousel) {
-                    this._carousel = jCarousel.detectCarousel(this.options('carousel') || this._element);
-
-                    if (!this._carousel) {
-                        $.error('Could not detect carousel for plugin "' + pluginName + '"');
-                    }
-                }
-
-                return this._carousel;
-            },
-            _trigger: function(type, element, data) {
-                var event,
-                    defaultPrevented = false;
-
-                data = [this].concat(data || []);
-
-                (element || this._element).each(function() {
-                    event = $.Event((pluginName + ':' + type).toLowerCase());
-
-                    $(this).trigger(event, data);
-
-                    if (event.isDefaultPrevented()) {
-                        defaultPrevented = true;
-                    }
-                });
-
-                return !defaultPrevented;
-            }
-        };
-    };
-
-    jCarousel.plugin = function(pluginName, pluginPrototype) {
-        var Plugin = $[pluginName] = function(element, options) {
-            this._element = $(element);
-            this.options(options);
-
-            this._init();
-            this.create();
-        };
-
-        Plugin.fn = Plugin.prototype = $.extend(
-            {},
-            jCarousel.base(pluginName),
-            pluginPrototype
-        );
-
-        $.fn[pluginName] = function(options) {
-            var args        = Array.prototype.slice.call(arguments, 1),
-                returnValue = this;
-
-            if (typeof options === 'string') {
-                this.each(function() {
-                    var instance = $(this).data(pluginName);
-
-                    if (!instance) {
-                        return $.error(
-                            'Cannot call methods on ' + pluginName + ' prior to initialization; ' +
-                            'attempted to call method "' + options + '"'
-                        );
-                    }
-
-                    if (!$.isFunction(instance[options]) || options.charAt(0) === '_') {
-                        return $.error(
-                            'No such method "' + options + '" for ' + pluginName + ' instance'
-                        );
-                    }
-
-                    var methodValue = instance[options].apply(instance, args);
-
-                    if (methodValue !== instance && typeof methodValue !== 'undefined') {
-                        returnValue = methodValue;
-                        return false;
-                    }
-                });
-            } else {
-                this.each(function() {
-                    var instance = $(this).data(pluginName);
-
-                    if (instance instanceof Plugin) {
-                        instance.reload(options);
-                    } else {
-                        new Plugin(this, options);
-                    }
-                });
-            }
-
-            return returnValue;
-        };
-
-        return Plugin;
-    };
-}(jQuery));
-
-(function($, window) {
-    'use strict';
-
-    var toFloat = function(val) {
-        return parseFloat(val) || 0;
-    };
-
-    $.jCarousel.plugin('jcarousel', {
-        animating:   false,
-        tail:        0,
-        inTail:      false,
-        resizeTimer: null,
-        lt:          null,
-        vertical:    false,
-        rtl:         false,
-        circular:    false,
-        underflow:   false,
-        relative:    false,
-
-        _options: {
-            list: function() {
-                return this.element().children().eq(0);
-            },
-            items: function() {
-                return this.list().children();
-            },
-            animation:   400,
-            transitions: false,
-            wrap:        null,
-            vertical:    null,
-            rtl:         null,
-            center:      false
-        },
-
-        // Protected, don't access directly
-        _list:         null,
-        _items:        null,
-        _target:       $(),
-        _first:        $(),
-        _last:         $(),
-        _visible:      $(),
-        _fullyvisible: $(),
-        _init: function() {
-            var self = this;
-
-            this.onWindowResize = function() {
-                if (self.resizeTimer) {
-                    clearTimeout(self.resizeTimer);
-                }
-
-                self.resizeTimer = setTimeout(function() {
-                    self.reload();
-                }, 100);
-            };
-
-            return this;
-        },
-        _create: function() {
-            this._reload();
-
-            $(window).on('resize.jcarousel', this.onWindowResize);
-        },
-        _destroy: function() {
-            $(window).off('resize.jcarousel', this.onWindowResize);
-        },
-        _reload: function() {
-            this.vertical = this.options('vertical');
-
-            if (this.vertical == null) {
-                this.vertical = this.list().height() > this.list().width();
-            }
-
-            this.rtl = this.options('rtl');
-
-            if (this.rtl == null) {
-                this.rtl = (function(element) {
-                    if (('' + element.attr('dir')).toLowerCase() === 'rtl') {
-                        return true;
-                    }
-
-                    var found = false;
-
-                    element.parents('[dir]').each(function() {
-                        if ((/rtl/i).test($(this).attr('dir'))) {
-                            found = true;
-                            return false;
-                        }
-                    });
-
-                    return found;
-                }(this._element));
-            }
-
-            this.lt = this.vertical ? 'top' : 'left';
-
-            // Ensure before closest() call
-            this.relative = this.list().css('position') === 'relative';
-
-            // Force list and items reload
-            this._list  = null;
-            this._items = null;
-
-            var item = this.index(this._target) >= 0 ?
-                           this._target :
-                           this.closest();
-
-            // _prepare() needs this here
-            this.circular  = this.options('wrap') === 'circular';
-            this.underflow = false;
-
-            var props = {'left': 0, 'top': 0};
-
-            if (item.length > 0) {
-                this._prepare(item);
-                this.list().find('[data-jcarousel-clone]').remove();
-
-                // Force items reload
-                this._items = null;
-
-                this.underflow = this._fullyvisible.length >= this.items().length;
-                this.circular  = this.circular && !this.underflow;
-
-                props[this.lt] = this._position(item) + 'px';
-            }
-
-            this.move(props);
-
-            return this;
-        },
-        list: function() {
-            if (this._list === null) {
-                var option = this.options('list');
-                this._list = $.isFunction(option) ? option.call(this) : this._element.find(option);
-            }
-
-            return this._list;
-        },
-        items: function() {
-            if (this._items === null) {
-                var option = this.options('items');
-                this._items = ($.isFunction(option) ? option.call(this) : this.list().find(option)).not('[data-jcarousel-clone]');
-            }
-
-            return this._items;
-        },
-        index: function(item) {
-            return this.items().index(item);
-        },
-        closest: function() {
-            var self    = this,
-                pos     = this.list().position()[this.lt],
-                closest = $(), // Ensure we're returning a jQuery instance
-                stop    = false,
-                lrb     = this.vertical ? 'bottom' : (this.rtl && !this.relative ? 'left' : 'right'),
-                width;
-
-            if (this.rtl && this.relative && !this.vertical) {
-                pos += this.list().width() - this.clipping();
-            }
-
-            this.items().each(function() {
-                closest = $(this);
-
-                if (stop) {
-                    return false;
-                }
-
-                var dim = self.dimension(closest);
-
-                pos += dim;
-
-                if (pos >= 0) {
-                    width = dim - toFloat(closest.css('margin-' + lrb));
-
-                    if ((Math.abs(pos) - dim + (width / 2)) <= 0) {
-                        stop = true;
-                    } else {
-                        return false;
-                    }
-                }
-            });
-
-
-            return closest;
-        },
-        target: function() {
-            return this._target;
-        },
-        first: function() {
-            return this._first;
-        },
-        last: function() {
-            return this._last;
-        },
-        visible: function() {
-            return this._visible;
-        },
-        fullyvisible: function() {
-            return this._fullyvisible;
-        },
-        hasNext: function() {
-            if (false === this._trigger('hasnext')) {
-                return true;
-            }
-
-            var wrap = this.options('wrap'),
-                end = this.items().length - 1,
-                check = this.options('center') ? this._target : this._last;
-
-            return end >= 0 && !this.underflow &&
-                ((wrap && wrap !== 'first') ||
-                    (this.index(check) < end) ||
-                    (this.tail && !this.inTail)) ? true : false;
-        },
-        hasPrev: function() {
-            if (false === this._trigger('hasprev')) {
-                return true;
-            }
-
-            var wrap = this.options('wrap');
-
-            return this.items().length > 0 && !this.underflow &&
-                ((wrap && wrap !== 'last') ||
-                    (this.index(this._first) > 0) ||
-                    (this.tail && this.inTail)) ? true : false;
-        },
-        clipping: function() {
-            return this._element['inner' + (this.vertical ? 'Height' : 'Width')]();
-        },
-        dimension: function(element) {
-            return element['outer' + (this.vertical ? 'Height' : 'Width')](true);
-        },
-        scroll: function(target, animate, callback) {
-            if (this.animating) {
-                return this;
-            }
-
-            if (false === this._trigger('scroll', null, [target, animate])) {
-                return this;
-            }
-
-            if ($.isFunction(animate)) {
-                callback = animate;
-                animate  = true;
-            }
-
-            var parsed = $.jCarousel.parseTarget(target);
-
-            if (parsed.relative) {
-                var end    = this.items().length - 1,
-                    scroll = Math.abs(parsed.target),
-                    wrap   = this.options('wrap'),
-                    current,
-                    first,
-                    index,
-                    start,
-                    curr,
-                    isVisible,
-                    props,
-                    i;
-
-                if (parsed.target > 0) {
-                    var last = this.index(this._last);
-
-                    if (last >= end && this.tail) {
-                        if (!this.inTail) {
-                            this._scrollTail(animate, callback);
-                        } else {
-                            if (wrap === 'both' || wrap === 'last') {
-                                this._scroll(0, animate, callback);
-                            } else {
-                                if ($.isFunction(callback)) {
-                                    callback.call(this, false);
-                                }
-                            }
-                        }
-                    } else {
-                        current = this.index(this._target);
-
-                        if ((this.underflow && current === end && (wrap === 'circular' || wrap === 'both' || wrap === 'last')) ||
-                            (!this.underflow && last === end && (wrap === 'both' || wrap === 'last'))) {
-                            this._scroll(0, animate, callback);
-                        } else {
-                            index = current + scroll;
-
-                            if (this.circular && index > end) {
-                                i = end;
-                                curr = this.items().get(-1);
-
-                                while (i++ < index) {
-                                    curr = this.items().eq(0);
-                                    isVisible = this._visible.index(curr) >= 0;
-
-                                    if (isVisible) {
-                                        curr.after(curr.clone(true).attr('data-jcarousel-clone', true));
-                                    }
-
-                                    this.list().append(curr);
-
-                                    if (!isVisible) {
-                                        props = {};
-                                        props[this.lt] = this.dimension(curr);
-                                        this.moveBy(props);
-                                    }
-
-                                    // Force items reload
-                                    this._items = null;
-                                }
-
-                                this._scroll(curr, animate, callback);
-                            } else {
-                                this._scroll(Math.min(index, end), animate, callback);
-                            }
-                        }
-                    }
-                } else {
-                    if (this.inTail) {
-                        this._scroll(Math.max((this.index(this._first) - scroll) + 1, 0), animate, callback);
-                    } else {
-                        first  = this.index(this._first);
-                        current = this.index(this._target);
-                        start  = this.underflow ? current : first;
-                        index  = start - scroll;
-
-                        if (start <= 0 && ((this.underflow && wrap === 'circular') || wrap === 'both' || wrap === 'first')) {
-                            this._scroll(end, animate, callback);
-                        } else {
-                            if (this.circular && index < 0) {
-                                i    = index;
-                                curr = this.items().get(0);
-
-                                while (i++ < 0) {
-                                    curr = this.items().eq(-1);
-                                    isVisible = this._visible.index(curr) >= 0;
-
-                                    if (isVisible) {
-                                        curr.after(curr.clone(true).attr('data-jcarousel-clone', true));
-                                    }
-
-                                    this.list().prepend(curr);
-
-                                    // Force items reload
-                                    this._items = null;
-
-                                    var dim = this.dimension(curr);
-
-                                    props = {};
-                                    props[this.lt] = -dim;
-                                    this.moveBy(props);
-
-                                }
-
-                                this._scroll(curr, animate, callback);
-                            } else {
-                                this._scroll(Math.max(index, 0), animate, callback);
-                            }
-                        }
-                    }
-                }
-            } else {
-                this._scroll(parsed.target, animate, callback);
-            }
-
-            this._trigger('scrollend');
-
-            return this;
-        },
-        moveBy: function(properties, opts) {
-            var position = this.list().position(),
-                multiplier = 1,
-                correction = 0;
-
-            if (this.rtl && !this.vertical) {
-                multiplier = -1;
-
-                if (this.relative) {
-                    correction = this.list().width() - this.clipping();
-                }
-            }
-
-            if (properties.left) {
-                properties.left = (position.left + correction + toFloat(properties.left) * multiplier) + 'px';
-            }
-
-            if (properties.top) {
-                properties.top = (position.top + correction + toFloat(properties.top) * multiplier) + 'px';
-            }
-
-            return this.move(properties, opts);
-        },
-        move: function(properties, opts) {
-            opts = opts || {};
-
-            var option       = this.options('transitions'),
-                transitions  = !!option,
-                transforms   = !!option.transforms,
-                transforms3d = !!option.transforms3d,
-                duration     = opts.duration || 0,
-                list         = this.list();
-
-            if (!transitions && duration > 0) {
-                list.animate(properties, opts);
-                return;
-            }
-
-            var complete = opts.complete || $.noop,
-                css = {};
-
-            if (transitions) {
-                var backup = {
-                        transitionDuration: list.css('transitionDuration'),
-                        transitionTimingFunction: list.css('transitionTimingFunction'),
-                        transitionProperty: list.css('transitionProperty')
-                    },
-                    oldComplete = complete;
-
-                complete = function() {
-                    $(this).css(backup);
-                    oldComplete.call(this);
-                };
-                css = {
-                    transitionDuration: (duration > 0 ? duration / 1000 : 0) + 's',
-                    transitionTimingFunction: option.easing || opts.easing,
-                    transitionProperty: duration > 0 ? (function() {
-                        if (transforms || transforms3d) {
-                            // We have to use 'all' because jQuery doesn't prefix
-                            // css values, like transition-property: transform;
-                            return 'all';
-                        }
-
-                        return properties.left ? 'left' : 'top';
-                    })() : 'none',
-                    transform: 'none'
-                };
-            }
-
-            if (transforms3d) {
-                css.transform = 'translate3d(' + (properties.left || 0) + ',' + (properties.top || 0) + ',0)';
-            } else if (transforms) {
-                css.transform = 'translate(' + (properties.left || 0) + ',' + (properties.top || 0) + ')';
-            } else {
-                $.extend(css, properties);
-            }
-
-            if (transitions && duration > 0) {
-                list.one('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd', complete);
-            }
-
-            list.css(css);
-
-            if (duration <= 0) {
-                list.each(function() {
-                    complete.call(this);
-                });
-            }
-        },
-        _scroll: function(item, animate, callback) {
-            if (this.animating) {
-                if ($.isFunction(callback)) {
-                    callback.call(this, false);
-                }
-
-                return this;
-            }
-
-            if (typeof item !== 'object') {
-                item = this.items().eq(item);
-            } else if (typeof item.jquery === 'undefined') {
-                item = $(item);
-            }
-
-            if (item.length === 0) {
-                if ($.isFunction(callback)) {
-                    callback.call(this, false);
-                }
-
-                return this;
-            }
-
-            this.inTail = false;
-
-            this._prepare(item);
-
-            var pos     = this._position(item),
-                currPos = this.list().position()[this.lt];
-
-            if (pos === currPos) {
-                if ($.isFunction(callback)) {
-                    callback.call(this, false);
-                }
-
-                return this;
-            }
-
-            var properties = {};
-            properties[this.lt] = pos + 'px';
-
-            this._animate(properties, animate, callback);
-
-            return this;
-        },
-        _scrollTail: function(animate, callback) {
-            if (this.animating || !this.tail) {
-                if ($.isFunction(callback)) {
-                    callback.call(this, false);
-                }
-
-                return this;
-            }
-
-            var pos = this.list().position()[this.lt];
-
-            if (this.rtl && this.relative && !this.vertical) {
-                pos += this.list().width() - this.clipping();
-            }
-
-            if (this.rtl && !this.vertical) {
-                pos += this.tail;
-            } else {
-                pos -= this.tail;
-            }
-
-            this.inTail = true;
-
-            var properties = {};
-            properties[this.lt] = pos + 'px';
-
-            this._update({
-                target:       this._target.next(),
-                fullyvisible: this._fullyvisible.slice(1).add(this._visible.last())
-            });
-
-            this._animate(properties, animate, callback);
-
-            return this;
-        },
-        _animate: function(properties, animate, callback) {
-            callback = callback || $.noop;
-
-            if (false === this._trigger('animate')) {
-                callback.call(this, false);
-                return this;
-            }
-
-            this.animating = true;
-
-            var animation = this.options('animation'),
-                complete  = $.proxy(function() {
-                    this.animating = false;
-
-                    var c = this.list().find('[data-jcarousel-clone]');
-
-                    if (c.length > 0) {
-                        c.remove();
-                        this._reload();
-                    }
-
-                    this._trigger('animateend');
-
-                    callback.call(this, true);
-                }, this);
-
-            var opts = typeof animation === 'object' ?
-                           $.extend({}, animation) :
-                           {duration: animation},
-                oldComplete = opts.complete || $.noop;
-
-            if (animate === false) {
-                opts.duration = 0;
-            } else if (typeof $.fx.speeds[opts.duration] !== 'undefined') {
-                opts.duration = $.fx.speeds[opts.duration];
-            }
-
-            opts.complete = function() {
-                complete();
-                oldComplete.call(this);
-            };
-
-            this.move(properties, opts);
-
-            return this;
-        },
-        _prepare: function(item) {
-            var index  = this.index(item),
-                idx    = index,
-                wh     = this.dimension(item),
-                clip   = this.clipping(),
-                lrb    = this.vertical ? 'bottom' : (this.rtl ? 'left'  : 'right'),
-                center = this.options('center'),
-                update = {
-                    target:       item,
-                    first:        item,
-                    last:         item,
-                    visible:      item,
-                    fullyvisible: wh <= clip ? item : $()
-                },
-                curr,
-                isVisible,
-                margin,
-                dim;
-
-            if (center) {
-                wh /= 2;
-                clip /= 2;
-            }
-
-            if (wh < clip) {
-                while (true) {
-                    curr = this.items().eq(++idx);
-
-                    if (curr.length === 0) {
-                        if (!this.circular) {
-                            break;
-                        }
-
-                        curr = this.items().eq(0);
-
-                        if (item.get(0) === curr.get(0)) {
-                            break;
-                        }
-
-                        isVisible = this._visible.index(curr) >= 0;
-
-                        if (isVisible) {
-                            curr.after(curr.clone(true).attr('data-jcarousel-clone', true));
-                        }
-
-                        this.list().append(curr);
-
-                        if (!isVisible) {
-                            var props = {};
-                            props[this.lt] = this.dimension(curr);
-                            this.moveBy(props);
-                        }
-
-                        // Force items reload
-                        this._items = null;
-                    }
-
-                    dim = this.dimension(curr);
-
-                    if (dim === 0) {
-                        break;
-                    }
-
-                    wh += dim;
-
-                    update.last    = curr;
-                    update.visible = update.visible.add(curr);
-
-                    // Remove right/bottom margin from total width
-                    margin = toFloat(curr.css('margin-' + lrb));
-
-                    if ((wh - margin) <= clip) {
-                        update.fullyvisible = update.fullyvisible.add(curr);
-                    }
-
-                    if (wh >= clip) {
-                        break;
-                    }
-                }
-            }
-
-            if (!this.circular && !center && wh < clip) {
-                idx = index;
-
-                while (true) {
-                    if (--idx < 0) {
-                        break;
-                    }
-
-                    curr = this.items().eq(idx);
-
-                    if (curr.length === 0) {
-                        break;
-                    }
-
-                    dim = this.dimension(curr);
-
-                    if (dim === 0) {
-                        break;
-                    }
-
-                    wh += dim;
-
-                    update.first   = curr;
-                    update.visible = update.visible.add(curr);
-
-                    // Remove right/bottom margin from total width
-                    margin = toFloat(curr.css('margin-' + lrb));
-
-                    if ((wh - margin) <= clip) {
-                        update.fullyvisible = update.fullyvisible.add(curr);
-                    }
-
-                    if (wh >= clip) {
-                        break;
-                    }
-                }
-            }
-
-            this._update(update);
-
-            this.tail = 0;
-
-            if (!center &&
-                this.options('wrap') !== 'circular' &&
-                this.options('wrap') !== 'custom' &&
-                this.index(update.last) === (this.items().length - 1)) {
-
-                // Remove right/bottom margin from total width
-                wh -= toFloat(update.last.css('margin-' + lrb));
-
-                if (wh > clip) {
-                    this.tail = wh - clip;
-                }
-            }
-
-            return this;
-        },
-        _position: function(item) {
-            var first  = this._first,
-                pos    = first.position()[this.lt],
-                center = this.options('center'),
-                centerOffset = center ? (this.clipping() / 2) - (this.dimension(first) / 2) : 0;
-
-            if (this.rtl && !this.vertical) {
-                if (this.relative) {
-                    pos -= this.list().width() - this.dimension(first);
-                } else {
-                    pos -= this.clipping() - this.dimension(first);
-                }
-
-                pos += centerOffset;
-            } else {
-                pos -= centerOffset;
-            }
-
-            if (!center &&
-                (this.index(item) > this.index(first) || this.inTail) &&
-                this.tail) {
-                pos = this.rtl && !this.vertical ? pos - this.tail : pos + this.tail;
-                this.inTail = true;
-            } else {
-                this.inTail = false;
-            }
-
-            return -pos;
-        },
-        _update: function(update) {
-            var self = this,
-                current = {
-                    target:       this._target,
-                    first:        this._first,
-                    last:         this._last,
-                    visible:      this._visible,
-                    fullyvisible: this._fullyvisible
-                },
-                back = this.index(update.first || current.first) < this.index(current.first),
-                key,
-                doUpdate = function(key) {
-                    var elIn  = [],
-                        elOut = [];
-
-                    update[key].each(function() {
-                        if (current[key].index(this) < 0) {
-                            elIn.push(this);
-                        }
-                    });
-
-                    current[key].each(function() {
-                        if (update[key].index(this) < 0) {
-                            elOut.push(this);
-                        }
-                    });
-
-                    if (back) {
-                        elIn = elIn.reverse();
-                    } else {
-                        elOut = elOut.reverse();
-                    }
-
-                    self._trigger(key + 'in', $(elIn));
-                    self._trigger(key + 'out', $(elOut));
-
-                    self['_' + key] = update[key];
-                };
-
-            for (key in update) {
-                doUpdate(key);
-            }
-
-            return this;
-        }
-    });
-}(jQuery, window));
-
-(function($) {
-    'use strict';
-
-    $.jcarousel.fn.scrollIntoView = function(target, animate, callback) {
-        var parsed = $.jCarousel.parseTarget(target),
-            first  = this.index(this._fullyvisible.first()),
-            last   = this.index(this._fullyvisible.last()),
-            index;
-
-        if (parsed.relative) {
-            index = parsed.target < 0 ? Math.max(0, first + parsed.target) : last + parsed.target;
-        } else {
-            index = typeof parsed.target !== 'object' ? parsed.target : this.index(parsed.target);
-        }
-
-        if (index < first) {
-            return this.scroll(index, animate, callback);
-        }
-
-        if (index >= first && index <= last) {
-            if ($.isFunction(callback)) {
-                callback.call(this, false);
-            }
-
-            return this;
-        }
-
-        var items = this.items(),
-            clip = this.clipping(),
-            lrb  = this.vertical ? 'bottom' : (this.rtl ? 'left'  : 'right'),
-            wh   = 0,
-            curr;
-
-        while (true) {
-            curr = items.eq(index);
-
-            if (curr.length === 0) {
-                break;
-            }
-
-            wh += this.dimension(curr);
-
-            if (wh >= clip) {
-                var margin = parseFloat(curr.css('margin-' + lrb)) || 0;
-                if ((wh - margin) !== clip) {
-                    index++;
-                }
-                break;
-            }
-
-            if (index <= 0) {
-                break;
-            }
-
-            index--;
-        }
-
-        return this.scroll(index, animate, callback);
-    };
-}(jQuery));
-
-(function($) {
-    'use strict';
-
-    $.jCarousel.plugin('jcarouselControl', {
-        _options: {
-            target: '+=1',
-            event:  'click',
-            method: 'scroll'
-        },
-        _active: null,
-        _init: function() {
-            this.onDestroy = $.proxy(function() {
-                this._destroy();
-                this.carousel()
-                    .one('jcarousel:createend', $.proxy(this._create, this));
-            }, this);
-            this.onReload = $.proxy(this._reload, this);
-            this.onEvent = $.proxy(function(e) {
-                e.preventDefault();
-
-                var method = this.options('method');
-
-                if ($.isFunction(method)) {
-                    method.call(this);
-                } else {
-                    this.carousel()
-                        .jcarousel(this.options('method'), this.options('target'));
-                }
-            }, this);
-        },
-        _create: function() {
-            this.carousel()
-                .one('jcarousel:destroy', this.onDestroy)
-                .on('jcarousel:reloadend jcarousel:scrollend', this.onReload);
-
-            this._element
-                .on(this.options('event') + '.jcarouselcontrol', this.onEvent);
-
-            this._reload();
-        },
-        _destroy: function() {
-            this._element
-                .off('.jcarouselcontrol', this.onEvent);
-
-            this.carousel()
-                .off('jcarousel:destroy', this.onDestroy)
-                .off('jcarousel:reloadend jcarousel:scrollend', this.onReload);
-        },
-        _reload: function() {
-            var parsed   = $.jCarousel.parseTarget(this.options('target')),
-                carousel = this.carousel(),
-                active;
-
-            if (parsed.relative) {
-                active = carousel
-                    .jcarousel(parsed.target > 0 ? 'hasNext' : 'hasPrev');
-            } else {
-                var target = typeof parsed.target !== 'object' ?
-                                carousel.jcarousel('items').eq(parsed.target) :
-                                parsed.target;
-
-                active = carousel.jcarousel('target').index(target) >= 0;
-            }
-
-            if (this._active !== active) {
-                this._trigger(active ? 'active' : 'inactive');
-                this._active = active;
-            }
-
-            return this;
-        }
-    });
-}(jQuery));
-
-(function($) {
-    'use strict';
-
-    $.jCarousel.plugin('jcarouselPagination', {
-        _options: {
-            perPage: null,
-            item: function(page) {
-                return '<a href="#' + page + '">' + page + '</a>';
-            },
-            event:  'click',
-            method: 'scroll'
-        },
-        _carouselItems: null,
-        _pages: {},
-        _items: {},
-        _currentPage: null,
-        _init: function() {
-            this.onDestroy = $.proxy(function() {
-                this._destroy();
-                this.carousel()
-                    .one('jcarousel:createend', $.proxy(this._create, this));
-            }, this);
-            this.onReload = $.proxy(this._reload, this);
-            this.onScroll = $.proxy(this._update, this);
-        },
-        _create: function() {
-            this.carousel()
-                .one('jcarousel:destroy', this.onDestroy)
-                .on('jcarousel:reloadend', this.onReload)
-                .on('jcarousel:scrollend', this.onScroll);
-
-            this._reload();
-        },
-        _destroy: function() {
-            this._clear();
-
-            this.carousel()
-                .off('jcarousel:destroy', this.onDestroy)
-                .off('jcarousel:reloadend', this.onReload)
-                .off('jcarousel:scrollend', this.onScroll);
-
-            this._carouselItems = null;
-        },
-        _reload: function() {
-            var perPage = this.options('perPage');
-
-            this._pages = {};
-            this._items = {};
-
-            // Calculate pages
-            if ($.isFunction(perPage)) {
-                perPage = perPage.call(this);
-            }
-
-            if (perPage == null) {
-                this._pages = this._calculatePages();
-            } else {
-                var pp    = parseInt(perPage, 10) || 0,
-                    items = this._getCarouselItems(),
-                    page  = 1,
-                    i     = 0,
-                    curr;
-
-                while (true) {
-                    curr = items.eq(i++);
-
-                    if (curr.length === 0) {
-                        break;
-                    }
-
-                    if (!this._pages[page]) {
-                        this._pages[page] = curr;
-                    } else {
-                        this._pages[page] = this._pages[page].add(curr);
-                    }
-
-                    if (i % pp === 0) {
-                        page++;
-                    }
-                }
-            }
-
-            this._clear();
-
-            var self     = this,
-                carousel = this.carousel().data('jcarousel'),
-                element  = this._element,
-                item     = this.options('item'),
-                numCarouselItems = this._getCarouselItems().length;
-
-            $.each(this._pages, function(page, carouselItems) {
-                var currItem = self._items[page] = $(item.call(self, page, carouselItems));
-
-                currItem.on(self.options('event') + '.jcarouselpagination', $.proxy(function() {
-                    var target = carouselItems.eq(0);
-
-                    // If circular wrapping enabled, ensure correct scrolling direction
-                    if (carousel.circular) {
-                        var currentIndex = carousel.index(carousel.target()),
-                            newIndex     = carousel.index(target);
-
-                        if (parseFloat(page) > parseFloat(self._currentPage)) {
-                            if (newIndex < currentIndex) {
-                                target = '+=' + (numCarouselItems - currentIndex + newIndex);
-                            }
-                        } else {
-                            if (newIndex > currentIndex) {
-                                target = '-=' + (currentIndex + (numCarouselItems - newIndex));
-                            }
-                        }
-                    }
-
-                    carousel[this.options('method')](target);
-                }, self));
-
-                element.append(currItem);
-            });
-
-            this._update();
-        },
-        _update: function() {
-            var target = this.carousel().jcarousel('target'),
-                currentPage;
-
-            $.each(this._pages, function(page, carouselItems) {
-                carouselItems.each(function() {
-                    if (target.is(this)) {
-                        currentPage = page;
-                        return false;
-                    }
-                });
-
-                if (currentPage) {
-                    return false;
-                }
-            });
-
-            if (this._currentPage !== currentPage) {
-                this._trigger('inactive', this._items[this._currentPage]);
-                this._trigger('active', this._items[currentPage]);
-            }
-
-            this._currentPage = currentPage;
-        },
-        items: function() {
-            return this._items;
-        },
-        reloadCarouselItems: function() {
-            this._carouselItems = null;
-            return this;
-        },
-        _clear: function() {
-            this._element.empty();
-            this._currentPage = null;
-        },
-        _calculatePages: function() {
-            var carousel = this.carousel().data('jcarousel'),
-                items    = this._getCarouselItems(),
-                clip     = carousel.clipping(),
-                wh       = 0,
-                idx      = 0,
-                page     = 1,
-                pages    = {},
-                curr,
-                dim;
-
-            while (true) {
-                curr = items.eq(idx++);
-
-                if (curr.length === 0) {
-                    break;
-                }
-
-                dim = carousel.dimension(curr);
-
-                if ((wh + dim) > clip) {
-                    page++;
-                    wh = 0;
-                }
-
-                wh += dim;
-
-                if (!pages[page]) {
-                    pages[page] = curr;
-                } else {
-                    pages[page] = pages[page].add(curr);
-                }
-            }
-
-            return pages;
-        },
-        _getCarouselItems: function() {
-            if (!this._carouselItems) {
-                this._carouselItems = this.carousel().jcarousel('items');
-            }
-
-            return this._carouselItems;
-        }
-    });
-}(jQuery));
-
-(function($) {
-    'use strict';
-
-    $.jCarousel.plugin('jcarouselAutoscroll', {
-        _options: {
-            target:    '+=1',
-            interval:  3000,
-            autostart: true
-        },
-        _timer: null,
-        _init: function () {
-            this.onDestroy = $.proxy(function() {
-                this._destroy();
-                this.carousel()
-                    .one('jcarousel:createend', $.proxy(this._create, this));
-            }, this);
-
-            this.onAnimateEnd = $.proxy(this.start, this);
-        },
-        _create: function() {
-            this.carousel()
-                .one('jcarousel:destroy', this.onDestroy);
-
-            if (this.options('autostart')) {
-                this.start();
-            }
-        },
-        _destroy: function() {
-            this.stop();
-            this.carousel()
-                .off('jcarousel:destroy', this.onDestroy);
-        },
-        start: function() {
-            this.stop();
-
-            this.carousel()
-                .one('jcarousel:animateend', this.onAnimateEnd);
-
-            this._timer = setTimeout($.proxy(function() {
-                this.carousel().jcarousel('scroll', this.options('target'));
-            }, this), this.options('interval'));
-
-            return this;
-        },
-        stop: function() {
-            if (this._timer) {
-                this._timer = clearTimeout(this._timer);
-            }
-
-            this.carousel()
-                .off('jcarousel:animateend', this.onAnimateEnd);
-
-            return this;
-        }
-    });
-}(jQuery));

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.min.js
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.min.js b/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.min.js
deleted file mode 100644
index 3dd2559..0000000
--- a/docs/manual/bower_components/jcarousel/dist/jquery.jcarousel.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jCarousel - v0.3.3 - 2015-02-28
-* http://sorgalla.com/jcarousel/
-* Copyright (c) 2006-2015 Jan Sorgalla; Licensed MIT */
-(function(t){"use strict";var i=t.jCarousel={};i.version="0.3.3";var s=/^([+\-]=)?(.+)$/;i.parseTarget=function(t){var i=!1,e="object"!=typeof t?s.exec(t):null;return e?(t=parseInt(e[2],10)||0,e[1]&&(i=!0,"-="===e[1]&&(t*=-1))):"object"!=typeof t&&(t=parseInt(t,10)||0),{target:t,relative:i}},i.detectCarousel=function(t){for(var i;t.length>0;){if(i=t.filter("[data-jcarousel]"),i.length>0)return i;if(i=t.find("[data-jcarousel]"),i.length>0)return i;t=t.parent()}return null},i.base=function(s){return{version:i.version,_options:{},_element:null,_carousel:null,_init:t.noop,_create:t.noop,_destroy:t.noop,_reload:t.noop,create:function(){return this._element.attr("data-"+s.toLowerCase(),!0).data(s,this),!1===this._trigger("create")?this:(this._create(),this._trigger("createend"),this)},destroy:function(){return!1===this._trigger("destroy")?this:(this._destroy(),this._trigger("destroyend"),this._element.removeData(s).removeAttr("data-"+s.toLowerCase()),this)},reload:function(t){return!1===t
 his._trigger("reload")?this:(t&&this.options(t),this._reload(),this._trigger("reloadend"),this)},element:function(){return this._element},options:function(i,s){if(0===arguments.length)return t.extend({},this._options);if("string"==typeof i){if(s===void 0)return this._options[i]===void 0?null:this._options[i];this._options[i]=s}else this._options=t.extend({},this._options,i);return this},carousel:function(){return this._carousel||(this._carousel=i.detectCarousel(this.options("carousel")||this._element),this._carousel||t.error('Could not detect carousel for plugin "'+s+'"')),this._carousel},_trigger:function(i,e,r){var n,o=!1;return r=[this].concat(r||[]),(e||this._element).each(function(){n=t.Event((s+":"+i).toLowerCase()),t(this).trigger(n,r),n.isDefaultPrevented()&&(o=!0)}),!o}}},i.plugin=function(s,e){var r=t[s]=function(i,s){this._element=t(i),this.options(s),this._init(),this.create()};return r.fn=r.prototype=t.extend({},i.base(s),e),t.fn[s]=function(i){var e=Array.prototype.sli
 ce.call(arguments,1),n=this;return"string"==typeof i?this.each(function(){var r=t(this).data(s);if(!r)return t.error("Cannot call methods on "+s+" prior to initialization; "+'attempted to call method "'+i+'"');if(!t.isFunction(r[i])||"_"===i.charAt(0))return t.error('No such method "'+i+'" for '+s+" instance");var o=r[i].apply(r,e);return o!==r&&o!==void 0?(n=o,!1):void 0}):this.each(function(){var e=t(this).data(s);e instanceof r?e.reload(i):new r(this,i)}),n},r}})(jQuery),function(t,i){"use strict";var s=function(t){return parseFloat(t)||0};t.jCarousel.plugin("jcarousel",{animating:!1,tail:0,inTail:!1,resizeTimer:null,lt:null,vertical:!1,rtl:!1,circular:!1,underflow:!1,relative:!1,_options:{list:function(){return this.element().children().eq(0)},items:function(){return this.list().children()},animation:400,transitions:!1,wrap:null,vertical:null,rtl:null,center:!1},_list:null,_items:null,_target:t(),_first:t(),_last:t(),_visible:t(),_fullyvisible:t(),_init:function(){var t=this;ret
 urn this.onWindowResize=function(){t.resizeTimer&&clearTimeout(t.resizeTimer),t.resizeTimer=setTimeout(function(){t.reload()},100)},this},_create:function(){this._reload(),t(i).on("resize.jcarousel",this.onWindowResize)},_destroy:function(){t(i).off("resize.jcarousel",this.onWindowResize)},_reload:function(){this.vertical=this.options("vertical"),null==this.vertical&&(this.vertical=this.list().height()>this.list().width()),this.rtl=this.options("rtl"),null==this.rtl&&(this.rtl=function(i){if("rtl"===(""+i.attr("dir")).toLowerCase())return!0;var s=!1;return i.parents("[dir]").each(function(){return/rtl/i.test(t(this).attr("dir"))?(s=!0,!1):void 0}),s}(this._element)),this.lt=this.vertical?"top":"left",this.relative="relative"===this.list().css("position"),this._list=null,this._items=null;var i=this.index(this._target)>=0?this._target:this.closest();this.circular="circular"===this.options("wrap"),this.underflow=!1;var s={left:0,top:0};return i.length>0&&(this._prepare(i),this.list().f
 ind("[data-jcarousel-clone]").remove(),this._items=null,this.underflow=this._fullyvisible.length>=this.items().length,this.circular=this.circular&&!this.underflow,s[this.lt]=this._position(i)+"px"),this.move(s),this},list:function(){if(null===this._list){var i=this.options("list");this._list=t.isFunction(i)?i.call(this):this._element.find(i)}return this._list},items:function(){if(null===this._items){var i=this.options("items");this._items=(t.isFunction(i)?i.call(this):this.list().find(i)).not("[data-jcarousel-clone]")}return this._items},index:function(t){return this.items().index(t)},closest:function(){var i,e=this,r=this.list().position()[this.lt],n=t(),o=!1,l=this.vertical?"bottom":this.rtl&&!this.relative?"left":"right";return this.rtl&&this.relative&&!this.vertical&&(r+=this.list().width()-this.clipping()),this.items().each(function(){if(n=t(this),o)return!1;var a=e.dimension(n);if(r+=a,r>=0){if(i=a-s(n.css("margin-"+l)),!(0>=Math.abs(r)-a+i/2))return!1;o=!0}}),n},target:functi
 on(){return this._target},first:function(){return this._first},last:function(){return this._last},visible:function(){return this._visible},fullyvisible:function(){return this._fullyvisible},hasNext:function(){if(!1===this._trigger("hasnext"))return!0;var t=this.options("wrap"),i=this.items().length-1,s=this.options("center")?this._target:this._last;return i>=0&&!this.underflow&&(t&&"first"!==t||i>this.index(s)||this.tail&&!this.inTail)?!0:!1},hasPrev:function(){if(!1===this._trigger("hasprev"))return!0;var t=this.options("wrap");return this.items().length>0&&!this.underflow&&(t&&"last"!==t||this.index(this._first)>0||this.tail&&this.inTail)?!0:!1},clipping:function(){return this._element["inner"+(this.vertical?"Height":"Width")]()},dimension:function(t){return t["outer"+(this.vertical?"Height":"Width")](!0)},scroll:function(i,s,e){if(this.animating)return this;if(!1===this._trigger("scroll",null,[i,s]))return this;t.isFunction(s)&&(e=s,s=!0);var r=t.jCarousel.parseTarget(i);if(r.rel
 ative){var n,o,l,a,h,u,c,f,d=this.items().length-1,_=Math.abs(r.target),p=this.options("wrap");if(r.target>0){var g=this.index(this._last);if(g>=d&&this.tail)this.inTail?"both"===p||"last"===p?this._scroll(0,s,e):t.isFunction(e)&&e.call(this,!1):this._scrollTail(s,e);else if(n=this.index(this._target),this.underflow&&n===d&&("circular"===p||"both"===p||"last"===p)||!this.underflow&&g===d&&("both"===p||"last"===p))this._scroll(0,s,e);else if(l=n+_,this.circular&&l>d){for(f=d,h=this.items().get(-1);l>f++;)h=this.items().eq(0),u=this._visible.index(h)>=0,u&&h.after(h.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(h),u||(c={},c[this.lt]=this.dimension(h),this.moveBy(c)),this._items=null;this._scroll(h,s,e)}else this._scroll(Math.min(l,d),s,e)}else if(this.inTail)this._scroll(Math.max(this.index(this._first)-_+1,0),s,e);else if(o=this.index(this._first),n=this.index(this._target),a=this.underflow?n:o,l=a-_,0>=a&&(this.underflow&&"circular"===p||"both"===p||"first"===p))thi
 s._scroll(d,s,e);else if(this.circular&&0>l){for(f=l,h=this.items().get(0);0>f++;){h=this.items().eq(-1),u=this._visible.index(h)>=0,u&&h.after(h.clone(!0).attr("data-jcarousel-clone",!0)),this.list().prepend(h),this._items=null;var v=this.dimension(h);c={},c[this.lt]=-v,this.moveBy(c)}this._scroll(h,s,e)}else this._scroll(Math.max(l,0),s,e)}else this._scroll(r.target,s,e);return this._trigger("scrollend"),this},moveBy:function(t,i){var e=this.list().position(),r=1,n=0;return this.rtl&&!this.vertical&&(r=-1,this.relative&&(n=this.list().width()-this.clipping())),t.left&&(t.left=e.left+n+s(t.left)*r+"px"),t.top&&(t.top=e.top+n+s(t.top)*r+"px"),this.move(t,i)},move:function(i,s){s=s||{};var e=this.options("transitions"),r=!!e,n=!!e.transforms,o=!!e.transforms3d,l=s.duration||0,a=this.list();if(!r&&l>0)return a.animate(i,s),void 0;var h=s.complete||t.noop,u={};if(r){var c={transitionDuration:a.css("transitionDuration"),transitionTimingFunction:a.css("transitionTimingFunction"),transiti
 onProperty:a.css("transitionProperty")},f=h;h=function(){t(this).css(c),f.call(this)},u={transitionDuration:(l>0?l/1e3:0)+"s",transitionTimingFunction:e.easing||s.easing,transitionProperty:l>0?function(){return n||o?"all":i.left?"left":"top"}():"none",transform:"none"}}o?u.transform="translate3d("+(i.left||0)+","+(i.top||0)+",0)":n?u.transform="translate("+(i.left||0)+","+(i.top||0)+")":t.extend(u,i),r&&l>0&&a.one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",h),a.css(u),0>=l&&a.each(function(){h.call(this)})},_scroll:function(i,s,e){if(this.animating)return t.isFunction(e)&&e.call(this,!1),this;if("object"!=typeof i?i=this.items().eq(i):i.jquery===void 0&&(i=t(i)),0===i.length)return t.isFunction(e)&&e.call(this,!1),this;this.inTail=!1,this._prepare(i);var r=this._position(i),n=this.list().position()[this.lt];if(r===n)return t.isFunction(e)&&e.call(this,!1),this;var o={};return o[this.lt]=r+"px",this._animate(o,s,e),this},_scrollTail:function(i,s
 ){if(this.animating||!this.tail)return t.isFunction(s)&&s.call(this,!1),this;var e=this.list().position()[this.lt];this.rtl&&this.relative&&!this.vertical&&(e+=this.list().width()-this.clipping()),this.rtl&&!this.vertical?e+=this.tail:e-=this.tail,this.inTail=!0;var r={};return r[this.lt]=e+"px",this._update({target:this._target.next(),fullyvisible:this._fullyvisible.slice(1).add(this._visible.last())}),this._animate(r,i,s),this},_animate:function(i,s,e){if(e=e||t.noop,!1===this._trigger("animate"))return e.call(this,!1),this;this.animating=!0;var r=this.options("animation"),n=t.proxy(function(){this.animating=!1;var t=this.list().find("[data-jcarousel-clone]");t.length>0&&(t.remove(),this._reload()),this._trigger("animateend"),e.call(this,!0)},this),o="object"==typeof r?t.extend({},r):{duration:r},l=o.complete||t.noop;return s===!1?o.duration=0:t.fx.speeds[o.duration]!==void 0&&(o.duration=t.fx.speeds[o.duration]),o.complete=function(){n(),l.call(this)},this.move(i,o),this},_prepar
 e:function(i){var e,r,n,o,l=this.index(i),a=l,h=this.dimension(i),u=this.clipping(),c=this.vertical?"bottom":this.rtl?"left":"right",f=this.options("center"),d={target:i,first:i,last:i,visible:i,fullyvisible:u>=h?i:t()};if(f&&(h/=2,u/=2),u>h)for(;;){if(e=this.items().eq(++a),0===e.length){if(!this.circular)break;if(e=this.items().eq(0),i.get(0)===e.get(0))break;if(r=this._visible.index(e)>=0,r&&e.after(e.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(e),!r){var _={};_[this.lt]=this.dimension(e),this.moveBy(_)}this._items=null}if(o=this.dimension(e),0===o)break;if(h+=o,d.last=e,d.visible=d.visible.add(e),n=s(e.css("margin-"+c)),u>=h-n&&(d.fullyvisible=d.fullyvisible.add(e)),h>=u)break}if(!this.circular&&!f&&u>h)for(a=l;;){if(0>--a)break;if(e=this.items().eq(a),0===e.length)break;if(o=this.dimension(e),0===o)break;if(h+=o,d.first=e,d.visible=d.visible.add(e),n=s(e.css("margin-"+c)),u>=h-n&&(d.fullyvisible=d.fullyvisible.add(e)),h>=u)break}return this._update(d),this.tai
 l=0,f||"circular"===this.options("wrap")||"custom"===this.options("wrap")||this.index(d.last)!==this.items().length-1||(h-=s(d.last.css("margin-"+c)),h>u&&(this.tail=h-u)),this},_position:function(t){var i=this._first,s=i.position()[this.lt],e=this.options("center"),r=e?this.clipping()/2-this.dimension(i)/2:0;return this.rtl&&!this.vertical?(s-=this.relative?this.list().width()-this.dimension(i):this.clipping()-this.dimension(i),s+=r):s-=r,!e&&(this.index(t)>this.index(i)||this.inTail)&&this.tail?(s=this.rtl&&!this.vertical?s-this.tail:s+this.tail,this.inTail=!0):this.inTail=!1,-s},_update:function(i){var s,e=this,r={target:this._target,first:this._first,last:this._last,visible:this._visible,fullyvisible:this._fullyvisible},n=this.index(i.first||r.first)<this.index(r.first),o=function(s){var o=[],l=[];i[s].each(function(){0>r[s].index(this)&&o.push(this)}),r[s].each(function(){0>i[s].index(this)&&l.push(this)}),n?o=o.reverse():l=l.reverse(),e._trigger(s+"in",t(o)),e._trigger(s+"out"
 ,t(l)),e["_"+s]=i[s]};for(s in i)o(s);return this}})}(jQuery,window),function(t){"use strict";t.jcarousel.fn.scrollIntoView=function(i,s,e){var r,n=t.jCarousel.parseTarget(i),o=this.index(this._fullyvisible.first()),l=this.index(this._fullyvisible.last());if(r=n.relative?0>n.target?Math.max(0,o+n.target):l+n.target:"object"!=typeof n.target?n.target:this.index(n.target),o>r)return this.scroll(r,s,e);if(r>=o&&l>=r)return t.isFunction(e)&&e.call(this,!1),this;for(var a,h=this.items(),u=this.clipping(),c=this.vertical?"bottom":this.rtl?"left":"right",f=0;;){if(a=h.eq(r),0===a.length)break;if(f+=this.dimension(a),f>=u){var d=parseFloat(a.css("margin-"+c))||0;f-d!==u&&r++;break}if(0>=r)break;r--}return this.scroll(r,s,e)}}(jQuery),function(t){"use strict";t.jCarousel.plugin("jcarouselControl",{_options:{target:"+=1",event:"click",method:"scroll"},_active:null,_init:function(){this.onDestroy=t.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",t.proxy(this._create,
 this))},this),this.onReload=t.proxy(this._reload,this),this.onEvent=t.proxy(function(i){i.preventDefault();var s=this.options("method");t.isFunction(s)?s.call(this):this.carousel().jcarousel(this.options("method"),this.options("target"))},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend jcarousel:scrollend",this.onReload),this._element.on(this.options("event")+".jcarouselcontrol",this.onEvent),this._reload()},_destroy:function(){this._element.off(".jcarouselcontrol",this.onEvent),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend jcarousel:scrollend",this.onReload)},_reload:function(){var i,s=t.jCarousel.parseTarget(this.options("target")),e=this.carousel();if(s.relative)i=e.jcarousel(s.target>0?"hasNext":"hasPrev");else{var r="object"!=typeof s.target?e.jcarousel("items").eq(s.target):s.target;i=e.jcarousel("target").index(r)>=0}return this._active!==i&&(this._trigger(i?"active":"inactive"),this.
 _active=i),this}})}(jQuery),function(t){"use strict";t.jCarousel.plugin("jcarouselPagination",{_options:{perPage:null,item:function(t){return'<a href="#'+t+'">'+t+"</a>"},event:"click",method:"scroll"},_carouselItems:null,_pages:{},_items:{},_currentPage:null,_init:function(){this.onDestroy=t.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",t.proxy(this._create,this))},this),this.onReload=t.proxy(this._reload,this),this.onScroll=t.proxy(this._update,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend",this.onReload).on("jcarousel:scrollend",this.onScroll),this._reload()},_destroy:function(){this._clear(),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend",this.onReload).off("jcarousel:scrollend",this.onScroll),this._carouselItems=null},_reload:function(){var i=this.options("perPage");if(this._pages={},this._items={},t.isFunction(i)&&(i=i.call(this)),null==i)this._pages=this.
 _calculatePages();else for(var s,e=parseInt(i,10)||0,r=this._getCarouselItems(),n=1,o=0;;){if(s=r.eq(o++),0===s.length)break;this._pages[n]=this._pages[n]?this._pages[n].add(s):s,0===o%e&&n++}this._clear();var l=this,a=this.carousel().data("jcarousel"),h=this._element,u=this.options("item"),c=this._getCarouselItems().length;t.each(this._pages,function(i,s){var e=l._items[i]=t(u.call(l,i,s));e.on(l.options("event")+".jcarouselpagination",t.proxy(function(){var t=s.eq(0);if(a.circular){var e=a.index(a.target()),r=a.index(t);parseFloat(i)>parseFloat(l._currentPage)?e>r&&(t="+="+(c-e+r)):r>e&&(t="-="+(e+(c-r)))}a[this.options("method")](t)},l)),h.append(e)}),this._update()},_update:function(){var i,s=this.carousel().jcarousel("target");t.each(this._pages,function(t,e){return e.each(function(){return s.is(this)?(i=t,!1):void 0}),i?!1:void 0}),this._currentPage!==i&&(this._trigger("inactive",this._items[this._currentPage]),this._trigger("active",this._items[i])),this._currentPage=i},items
 :function(){return this._items},reloadCarouselItems:function(){return this._carouselItems=null,this},_clear:function(){this._element.empty(),this._currentPage=null},_calculatePages:function(){for(var t,i,s=this.carousel().data("jcarousel"),e=this._getCarouselItems(),r=s.clipping(),n=0,o=0,l=1,a={};;){if(t=e.eq(o++),0===t.length)break;i=s.dimension(t),n+i>r&&(l++,n=0),n+=i,a[l]=a[l]?a[l].add(t):t}return a},_getCarouselItems:function(){return this._carouselItems||(this._carouselItems=this.carousel().jcarousel("items")),this._carouselItems}})}(jQuery),function(t){"use strict";t.jCarousel.plugin("jcarouselAutoscroll",{_options:{target:"+=1",interval:3e3,autostart:!0},_timer:null,_init:function(){this.onDestroy=t.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",t.proxy(this._create,this))},this),this.onAnimateEnd=t.proxy(this.start,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy),this.options("autostart")&&this.start()},_destroy:
 function(){this.stop(),this.carousel().off("jcarousel:destroy",this.onDestroy)},start:function(){return this.stop(),this.carousel().one("jcarousel:animateend",this.onAnimateEnd),this._timer=setTimeout(t.proxy(function(){this.carousel().jcarousel("scroll",this.options("target"))},this),this.options("interval")),this},stop:function(){return this._timer&&(this._timer=clearTimeout(this._timer)),this.carousel().off("jcarousel:animateend",this.onAnimateEnd),this}})}(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/README.md b/docs/manual/bower_components/jcarousel/docs/README.md
deleted file mode 100644
index 3adc7cf..0000000
--- a/docs/manual/bower_components/jcarousel/docs/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-Documentation
-=============
-
-Welcome to the documentation of jCarousel.
-
-Reference
----------
-
-* [Installation](reference/installation.md)
-* [Usage](reference/usage.md)
-* [Configuration](reference/configuration.md)
-* [API](reference/api.md)
-* [Events](reference/events.md)
-
-Plugins
--------
-
-* [Control Plugin](plugins/control/)
-* [Pagination Plugin](plugins/pagination/)
-* [Autoscroll Plugin](plugins/autoscroll/)
-* [ScrollIntoView Plugin](plugins/scrollintoview/)
-
-Cookbook
---------
-
-* [How to create a responsive carousel](cookbook/responsive-carousel.md)
-* [How to define a custom start position](cookbook/custom-start-position.md)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/cookbook/custom-start-position.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/cookbook/custom-start-position.md b/docs/manual/bower_components/jcarousel/docs/cookbook/custom-start-position.md
deleted file mode 100644
index 4f2c392..0000000
--- a/docs/manual/bower_components/jcarousel/docs/cookbook/custom-start-position.md
+++ /dev/null
@@ -1,42 +0,0 @@
-How to define a custom start position
-=====================================
-
-Sometimes, you don't want to start your carousel at the first item but define a
-custom start position.
-
-This can be achieved in two ways: Either by listening to the `createend` event
-or by defining the start position via CSS.
-
-Setting the start position through an event
--------------------------------------------
-
-You can set the start position by listening to the `createend` event and
-calling the `scroll` method:
-
-```javascript
-$('.jcarousel')
-    .on('jcarousel:createend', function() {
-        // Arguments:
-        // 1. The method to call
-        // 2. The index of the item (note that indexes are 0-based)
-        // 3. A flag telling jCarousel jumping to the index without animation
-        $(this).jcarousel('scroll', 2, false);
-    })
-    .jcarousel();
-```
-
-Setting the start position through CSS
---------------------------------------
-
-You can also set the initial position of the list through CSS and jCarousel will
-figure out which item to use as the start item:
-
-```css
-.jcarousel ul {
-    /* ...other styles left out... */
-    left: -150px;
-}
-```
-
-Assuming your items have a width of `75px`, the start item will be the third
-item.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/cookbook/responsive-carousel.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/cookbook/responsive-carousel.md b/docs/manual/bower_components/jcarousel/docs/cookbook/responsive-carousel.md
deleted file mode 100644
index aeae0d4..0000000
--- a/docs/manual/bower_components/jcarousel/docs/cookbook/responsive-carousel.md
+++ /dev/null
@@ -1,56 +0,0 @@
-How to create a responsive carousel
-===================================
-
-Responsive carousels are quite easy to implement with jCarousel.
-
-We simply listen to the `create` and `reload` events to resize each item to fit
-in the viewport.
-
-```javascript
-$('.jcarousel')
-    .on('jcarousel:create jcarousel:reload', function() {
-        var element = $(this),
-            width = element.innerWidth();
-
-        // This shows 1 item at a time.
-        // Divide `width` to the number of items you want to display,
-        // eg. `width = width / 3` to display 3 items at a time.
-        element.jcarousel('items').css('width', width + 'px');
-    })
-    .jcarousel({
-        // Your configurations options
-    });
-```
-
-You can also display a different number of items depending on the container
-size.
-
-```javascript
-$('.jcarousel')
-    .on('jcarousel:create jcarousel:reload', function() {
-        var element = $(this),
-            width = element.innerWidth();
-
-        if (width > 900) {
-            width = width / 3;
-        } else if (width > 600) {
-            width = width / 2;
-        }
-
-        element.jcarousel('items').css('width', width + 'px');
-    })
-    .jcarousel({
-        // Your configurations options
-    });
-```
-
-If you are displaying images in your carousel, make sure they are
-responsive-friendly and scale nicely to the parent element.
-
-```css
-.jcarousel img {
-    display: block;
-    max-width: 100%;
-    height: auto !important;
-}
-```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/README.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/README.md b/docs/manual/bower_components/jcarousel/docs/plugins/README.md
deleted file mode 100644
index 6d885d7..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Plugins
-=======
-
-By default, the jCarousel core only contains the minimum functionality needed to
-built carousel widgets. Specialized features are provided through plugins.
-
-jCarousel comes with the following plugins:
-
-* [Control Plugin](control/)
-* [Pagination Plugin](pagination/)
-* [Autoscroll Plugin](autoscroll/)
-* [ScrollIntoView Plugin](scrollintoview/)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/README.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/README.md b/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/README.md
deleted file mode 100644
index 14e48a4..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-Autoscroll Plugin
-=================
-
-The jCarousel Autoscroll Plugin provides autoscrolling support for jCarousel.
-
-Reference
----------
-
-* [Installation](reference/installation.md)
-* [Configuration](reference/configuration.md)
-* [API](reference/api.md)
-* [Events](reference/events.md)
-

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/api.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/api.md b/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/api.md
deleted file mode 100644
index 7df5086..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/api.md
+++ /dev/null
@@ -1,92 +0,0 @@
-API
-===
-
-After initialization, you can call the following methods on the plugin
-instance:
-
-* [start](#start)
-* [stop](#stop)
-* [reload](#reload)
-* [destroy](#destroy)
-
-
-start
-------
-
-### Description
-
-```javascript
-start()
-```
-
-Starts the autoscrolling.
-
-**Example:**
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll('start');
-```
-
-
-stop
-----
-
-### Description
-
-```javascript
-stop()
-```
-
-Stops the autoscrolling.
-
-**Example:**
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll('stop');
-```
-
-
-reload
-------
-
-### Description
-
-```javascript
-reload([options])
-```
-
-Reloads the plugin. This method is useful to reinitialize the plugin or if you
-want to change options at runtime.
-
-### Arguments
-
-  * #### options
-
-    A set of [configuration options](configuration.md).
-
-### Example
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll('reload', {
-    interval: 1500
-});
-```
-
-
-destroy
-------
-
-### Description
-
-```javascript
-destroy()
-```
-
-Removes the plugin functionality completely. This will return the element back
-to its initial state.
-
-### Example
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll('destroy');
-```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/configuration.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/configuration.md b/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/configuration.md
deleted file mode 100644
index 8f3989c..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/configuration.md
+++ /dev/null
@@ -1,69 +0,0 @@
-Configuration
-=============
-
-The plugin accepts the following options:
-
-* [target](#target)
-* [interval](#interval)
-* [autostart](#autostart)
-
-Options can be set either on [initialization](installation.md#setup) or at
-[runtime](api.md#reload).
-
-
-target
-------
-
-The target for the autoscrolling. This is basically the same as the first
-argument the [scroll](../../../reference/api.md#scroll) method acceppts.
-
-See [Available formats for the target argument](../../../reference/api.md#available-formats-for-the-target-argument)
-for more information about the target argument.
-
-### Example
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll({
-    target: '+=3'
-});
-```
-
-### Default
-
-`+=1`
-
-
-interval
---------
-
-The autoscrolling interval in milliseconds.
-
-### Example
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll({
-    interval: 1000
-});
-```
-
-### Default
-
-`3000`
-
-
-autostart
----------
-
-Whether to autostart autoscrolling.
-
-### Example
-
-```javascript
-$('.jcarousel').jcarouselAutoscroll({
-    autostart: false
-});
-```
-
-### Default
-
-`true`

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/events.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/events.md b/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/events.md
deleted file mode 100644
index 4d9cd6a..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/events.md
+++ /dev/null
@@ -1,110 +0,0 @@
-Events
-======
-
-After initialization, the plugin triggers the following events on the element:
-
-* [create](#create)
-* [createend](#createend)
-* [reload](#reload)
-* [reloadend](#reloadend)
-* [destroy](#destroy)
-* [destroyend](#destroyend)
-
-**Note**: Some events are triggered from the constructor, so you have to bind
-to the events **before** you initialize the plugin:
-
-```javascript
-$('.jcarousel')
-
-    // Bind first
-    .on('jcarouselautoscroll:create', function(event, carousel) {
-        // Do something
-    })
-
-    // Initialize at last step
-    .jcarouselAutoscroll();
-```
-
-
-create
-------
-
-Triggered on creation of the plugin.
-
-### Example
-
-```javascript
-$('.jcarousel').on('jcarouselautoscroll:create', function() {
-    // Do something
-});
-```
-
-
-createend
----------
-
-Triggered after creation of the plugin.
-
-### Example
-
-```javascript
-$('.jcarousel').on('jcarouselautoscroll:createend', function() {
-    // Do something
-});
-```
-
-
-reload
-------
-
-Triggered when the `reload` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel').on('jcarouselautoscroll:reload', function() {
-    // Do something
-});
-```
-
-
-reloadend
----------
-
-Triggered after the `reload` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel').on('jcarouselautoscroll:reloadend', function() {
-    // "this" refers to the element
-});
-```
-
-
-destroy
--------
-
-Triggered when the `destroy` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel').on('jcarouselautoscroll:destroy', function() {
-    // Do something
-});
-```
-
-
-destroyend
-----------
-
-Triggered after the ``destroy`` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel').on('jcarouselautoscroll:destroyend', function() {
-    // Do something
-});
-```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/installation.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/installation.md b/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/installation.md
deleted file mode 100644
index a13ce61..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/autoscroll/reference/installation.md
+++ /dev/null
@@ -1,23 +0,0 @@
-Installation
-============
-
-To setup autoscrolling, just call `jcarouselAutoscroll()` on the carousel root
-element:
-
-```javascript
-$(function() {
-    $('.jcarousel')
-        .jcarousel({
-            // Core configuration goes here
-        })
-        .jcarouselAutoscroll({
-            interval: 3000,
-            target: '+=1',
-            autostart: true
-        })
-    ;
-});
-```
-
-See [Configuration](configuration.md) for more information about the
-configuration options.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/control/README.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/control/README.md b/docs/manual/bower_components/jcarousel/docs/plugins/control/README.md
deleted file mode 100644
index c8a8cc8..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/control/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Control Plugin
-==============
-
-The jCarousel Control Plugin provides controls for jCarousel.
-
-A control is basically a HTML element (`<a>`, `<button>` etc.) which scrolls
-the carousel backward, forward or to a specific item when clicking on it.
-
-Reference
----------
-
-* [Installation](reference/installation.md)
-* [Configuration](reference/configuration.md)
-* [API](reference/api.md)
-* [Events](reference/events.md)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/api.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/api.md b/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/api.md
deleted file mode 100644
index 1d1b006..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/api.md
+++ /dev/null
@@ -1,53 +0,0 @@
-API
-===
-
-After initialization, you can call the following methods on the plugin
-instance:
-
-* [reload](#reload)
-* [destroy](#destroy)
-
-reload
-------
-
-### Description
-
-```javascript
-reload([options])
-```
-
-Reloads the plugin. This method is useful to reinitialize the plugin or if you
-want to change options at runtime.
-
-### Arguments
-
-  * #### options
-
-    A set of [configuration options](configuration.md).
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl('reload', {
-    target: '+=3'
-});
-```
-
-
-destroy
-------
-
-### Description
-
-```javascript
-destroy()
-```
-
-Removes the plugin functionality completely. This will return the element back
-to its initial state.
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl('destroy');
-```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/configuration.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/configuration.md b/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/configuration.md
deleted file mode 100644
index 9a0e21e..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/configuration.md
+++ /dev/null
@@ -1,109 +0,0 @@
-Configuration
-=============
-
-The plugin accepts the following options:
-
-* [target](#target)
-* [event](#event)
-* [method](#method)
-* [carousel](#carousel)
-
-Options can be set either on [initialization](installation.md#setup) or at
-[runtime](api.md#reload).
-
-
-target
-------
-
-The target for the control. This is basically the same as the first argument
-the [scroll](../../../reference/api.md#scroll) method acceppts.
-
-See [Available formats for the target argument](../../../reference/api.md#available-formats-for-the-target-argument)
-for more information about the target argument.
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl({
-    target: '+=3'
-});
-```
-
-### Default
-
-`+=1`
-
-
-event
------
-
-The event which triggers the control.
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl({
-    event: 'mouseover'
-});
-````
-
-### Default
-
-`click`
-
-
-method
-------
-
-The method to call on the carousel.
-
-Plugins may provide alternate methods for scrolling the carousel, e.g.
-[scrollIntoView](../../scrollintoview/).
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl({
-    method: 'scrollIntoView'
-});
-```
-
-Alternatively, `method` can be a function which will be called in the context of
-the plugin instance.
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl({
-    method: function() {
-        this.carousel()
-            .jcarousel('scroll', false, this.options('target'), function() {
-                // Do something
-            });
-    }
-});
-```
-
-### Default
-
-`scroll`
-
-
-carousel
---------
-
-The corresponding carousel as jQuery object.
-
-This is optional. By default, the plugin tries to autodetect the carousel.
-
-### Example
-
-```javascript
-$('.jcarousel-control').jcarouselControl({
-    carousel: $('.jcarousel')
-});
-```
-
-### Default
-
-`null`

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/events.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/events.md b/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/events.md
deleted file mode 100644
index 38868c7..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/events.md
+++ /dev/null
@@ -1,153 +0,0 @@
-Events
-======
-
-After initialization, the plugin triggers the following events on the element:
-
-* [active](#active)
-* [inactive](#inactive)
-* [create](#create)
-* [createend](#createend)
-* [reload](#reload)
-* [reloadend](#reloadend)
-* [destroy](#destroy)
-* [destroyend](#destroyend)
-
-**Note**: Some events are triggered from the constructor, so you have to bind
-to the events **before** you initialize the plugin:
-
-```javascript
-$('.jcarousel-control')
-
-    // Bind first
-    .on('jcarouselcontrol:active', function(event, carousel) {
-        // Do something
-    })
-
-    // Initialize at last step
-    .jcarouselControl();
-```
-
---------------------------------------------------------------------------------
-### How the plugin understands active and inactive states:
-
-If the `target` option is *relative*, `+=1` for example, the control is active
-if there is at least one more item to scroll, inactive otherwise (if you're at
-the last item in this case).
-
-If the `target` option is *absolute*, `0` for example (always scrolls to the
-first item), the control is active if the targeted item is at position 0,
-inactive otherwise.
-
---------------------------------------------------------------------------------
-
-
-active
-------
-
-Triggered when the control becomes active.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:active', function() {
-    // Do something
-});
-```
-
-
-inactive
---------
-
-Triggered when the control becomes inactive.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:inactive', function() {
-    // Do something
-});
-```
-
-
-create
-------
-
-Triggered on creation of the plugin.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:create', function() {
-    // Do something
-});
-```
-
-
-createend
----------
-
-Triggered after creation of the plugin.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:createend', function() {
-    // Do something
-});
-```
-
-
-reload
-------
-
-Triggered when the `reload` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:reload', function() {
-    // Do something
-});
-```
-
-
-reloadend
----------
-
-Triggered after the `reload` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:reloadend', function() {
-    // "this" refers to the element
-});
-```
-
-
-destroy
--------
-
-Triggered when the `destroy` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:destroy', function() {
-    // Do something
-});
-```
-
-
-destroyend
-----------
-
-Triggered after the `destroy` method is called.
-
-### Example
-
-```javascript
-$('.jcarousel-control').on('jcarouselcontrol:destroyend', function() {
-    // Do something
-});
-```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/installation.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/installation.md b/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/installation.md
deleted file mode 100644
index 8caa326..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/control/reference/installation.md
+++ /dev/null
@@ -1,70 +0,0 @@
-Installation
-============
-
-HTML markup
------------
-
-A simple basic HTML markup structure would be:
-
-```html
-<!-- Wrapper -->
-<div>
-    <!-- Carousel -->
-    <div class="jcarousel">
-        <ul>
-            <li>...</li>
-            <li>...</li>
-        </ul>
-    </div>
-
-    <!-- Controls -->
-    <a class="jcarousel-prev" href="#">Prev</a>
-    <a class="jcarousel-next" href="#">Next</a>
-</div>
-```
-
-
-Setup
------
-
-To setup the controls, call the `jcarouselControl()` plugin method on the
-control elements after you have initialized the carousel:
-
-```javascript
-$(function() {
-    $('.jcarousel').jcarousel({
-        // Core configuration goes here
-    });
-
-    $('.jcarousel-prev').jcarouselControl({
-        target: '-=1'
-    });
-
-    $('.jcarousel-next').jcarouselControl({
-        target: '+=1'
-    });
-});
-```
-
-See [Configuration](configuration.md) for more information about the
-configuration options.
-
-As you can see, you setup the controls independently from the carousel and the
-plugin tries to autodetect the carousel.
-
-This works best if you enclose the carousel and its controls inside a mutual
-wrapper element.
-
-If that fails or isn't possible, you can pass the related carousel instance as
-an option:
-
-```javascript
-var carousel = $('.jcarousel').jcarousel({
-    // Core configuration goes here
-});
-
-$('.jcarousel-prev').jcarouselControl({
-    target: '-=1',
-    carousel: carousel
-});
-```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/602d0996/docs/manual/bower_components/jcarousel/docs/plugins/pagination/README.md
----------------------------------------------------------------------
diff --git a/docs/manual/bower_components/jcarousel/docs/plugins/pagination/README.md b/docs/manual/bower_components/jcarousel/docs/plugins/pagination/README.md
deleted file mode 100644
index cb852a7..0000000
--- a/docs/manual/bower_components/jcarousel/docs/plugins/pagination/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Pagination Plugin
-=================
-
-The jCarousel Pagination Plugin provides a pagination for jCarousel.
-
-Reference
----------
-
-* [Installation](reference/installation.md)
-* [Configuration](reference/configuration.md)
-* [API](reference/api.md)
-* [Events](reference/events.md)