From 6b6b1645d66785ca1abd861a98dd93bf6dd9bd8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro?= <atrigol@gmail.com>
Date: Wed, 4 May 2016 15:32:53 +0100
Subject: [PATCH 01/15] - Added site to "who is using pagePiling.js"

---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 0f4a6df..199b6b6 100644
--- a/README.md
+++ b/README.md
@@ -320,6 +320,7 @@ If you want your page to be listed here. Please <a href="mailto:alvaro@alvarotri
 - http://netstorage.com.br/nucs/nucs.html
 - http://aungthurhahein.me/
 - http://mannydesigns.co
+- http://www.unwander.com/
 
 ## Donations
 Donations would be more than welcome :)

From 5235aa5f0c05d12c702411b5a33d0ef871fb8e06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro?= <atrigol@gmail.com>
Date: Thu, 7 Jul 2016 16:31:40 +0200
Subject: [PATCH 02/15] - Added gulp and `dist` files - Added package.json file
 - Added gitignore - Improved credits in CSS and JS files

---
 .gitignore                         |   3 +
 dist/jquery.pagepiling.css         | 128 ++++
 dist/jquery.pagepiling.js          | 928 +++++++++++++++++++++++++++++
 dist/jquery.pagepiling.min.css     |   9 +
 dist/jquery.pagepiling.min.css.map |   1 +
 dist/jquery.pagepiling.min.js      |  10 +
 dist/jquery.pagepiling.min.js.map  |   1 +
 examples/examples.css              | 629 +++++++++----------
 gulpfile.js                        |  34 ++
 jquery.pagepiling.css              |   7 +-
 jquery.pagepiling.js               |   4 +-
 package.json                       |  37 ++
 12 files changed, 1478 insertions(+), 313 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 dist/jquery.pagepiling.css
 create mode 100644 dist/jquery.pagepiling.js
 create mode 100644 dist/jquery.pagepiling.min.css
 create mode 100644 dist/jquery.pagepiling.min.css.map
 create mode 100644 dist/jquery.pagepiling.min.js
 create mode 100644 dist/jquery.pagepiling.min.js.map
 create mode 100644 gulpfile.js
 create mode 100644 package.json

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f2b726b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+.DS_Store
+bower_components/
+/node_modules
diff --git a/dist/jquery.pagepiling.css b/dist/jquery.pagepiling.css
new file mode 100644
index 0000000..baf0594
--- /dev/null
+++ b/dist/jquery.pagepiling.css
@@ -0,0 +1,128 @@
+/*!
+ * pagepiling.js 1.5.3
+ *
+ * https://github.com/alvarotrigo/pagePiling.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+html, body {
+    overflow:hidden;
+    margin:0;
+    padding:0;
+
+    /*Avoid flicker on slides transitions for mobile phones #336 */
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+.pp-section {
+    height:100%;
+    position:absolute;
+    width:100%;
+}
+.pp-easing {
+    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    /* custom */
+    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);
+    /* custom */
+}
+#pp-nav {
+    position: fixed;
+    z-index: 100;
+    margin-top: -32px;
+    top: 50%;
+    opacity: 1;
+}
+#pp-nav.right {
+    right: 17px;
+}
+#pp-nav.left {
+    left: 17px;
+}
+.pp-section.pp-table{
+    display: table;
+}
+.pp-tableCell {
+    display: table-cell;
+    vertical-align: middle;
+    width: 100%;
+    height: 100%;
+}
+.pp-slidesNav{
+    position: absolute;
+    z-index: 4;
+    left: 50%;
+    opacity: 1;
+}
+.pp-slidesNav.bottom {
+    bottom: 17px;
+}
+.pp-slidesNav.top {
+    top: 17px;
+}
+#pp-nav ul,
+.pp-slidesNav ul {
+  margin: 0;
+  padding: 0;
+}
+#pp-nav li,
+.pp-slidesNav li {
+    display: block;
+    width: 14px;
+    height: 13px;
+    margin: 7px;
+    position:relative;
+}
+.pp-slidesNav li {
+    display: inline-block;
+}
+#pp-nav li a,
+.pp-slidesNav li a {
+    display: block;
+    position: relative;
+    z-index: 1;
+    width: 100%;
+    height: 100%;
+    cursor: pointer;
+    text-decoration: none;
+}
+#pp-nav li .active span,
+.pp-slidesNav .active span {
+    background: #333;
+}
+#pp-nav span,
+.pp-slidesNav span {
+    top: 2px;
+    left: 2px;
+    width: 8px;
+    height: 8px;
+    border: 1px solid #000;
+    background: rgba(0, 0, 0, 0);
+    border-radius: 50%;
+    position: absolute;
+    z-index: 1;
+}
+.pp-tooltip {
+    position: absolute;
+    top: -2px;
+    color: #fff;
+    font-size: 14px;
+    font-family: arial, helvetica, sans-serif;
+    white-space: nowrap;
+    max-width: 220px;
+}
+.pp-tooltip.right {
+    right: 20px;
+}
+.pp-tooltip.left {
+    left: 20px;
+}
+.pp-scrollable{
+    overflow-y: scroll;
+    height: 100%;
+}
\ No newline at end of file
diff --git a/dist/jquery.pagepiling.js b/dist/jquery.pagepiling.js
new file mode 100644
index 0000000..6c1e109
--- /dev/null
+++ b/dist/jquery.pagepiling.js
@@ -0,0 +1,928 @@
+/*!
+ * pagepiling.js 1.5.3
+ *
+ * https://github.com/alvarotrigo/pagePiling.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+(function ($, document, window, undefined) {
+    'use strict';
+
+    $.fn.pagepiling = function (custom) {
+        var PP = $.fn.pagepiling;
+        var container = $(this);
+        var lastScrolledDestiny;
+        var lastAnimation = 0;
+        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
+        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;
+
+        //Defines the delay to take place before being able to scroll to the next section
+        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
+        //Apple devices (laptops, mouses...)
+        var scrollDelay = 600;
+
+        // Create some defaults, extending them with any options that were provided
+        var options = $.extend(true, {
+            direction: 'vertical',
+            menu: null,
+            verticalCentered: true,
+            sectionsColor: [],
+            anchors: [],
+            scrollingSpeed: 700,
+            easing: 'easeInQuart',
+            loopBottom: false,
+            loopTop: false,
+            css3: true,
+            navigation: {
+                textColor: '#000',
+                bulletsColor: '#000',
+                position: 'right',
+                tooltips: []
+            },
+            normalScrollElements: null,
+            normalScrollElementTouchThreshold: 5,
+            touchSensitivity: 5,
+            keyboardScrolling: true,
+            sectionSelector: '.section',
+            animateAnchor: false,
+
+            //events
+            afterLoad: null,
+            onLeave: null,
+            afterRender: null
+        }, custom);
+
+
+        //easeInQuart animation included in the plugin
+        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});
+
+        /**
+        * Defines the scrolling speed
+        */
+        PP.setScrollingSpeed = function(value){
+           options.scrollingSpeed = value;
+        };
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
+        */
+        PP.setMouseWheelScrolling = function (value){
+            if(value){
+                addMouseWheelHandler();
+            }else{
+                removeMouseWheelHandler();
+            }
+        };
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.
+        */
+        PP.setAllowScrolling = function (value){
+            if(value){
+                PP.setMouseWheelScrolling(true);
+                addTouchHandler();
+            }else{
+                PP.setMouseWheelScrolling(false);
+                removeTouchHandler();
+            }
+        };
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
+        */
+        PP.setKeyboardScrolling = function (value){
+            options.keyboardScrolling = value;
+        };
+
+        /**
+        * Moves sectio up
+        */
+        PP.moveSectionUp = function () {
+            var prev = $('.pp-section.active').prev('.pp-section');
+
+            //looping to the bottom if there's no more sections above
+            if (!prev.length && options.loopTop) {
+                prev = $('.pp-section').last();
+            }
+
+            if (prev.length) {
+                scrollPage(prev);
+            }
+        };
+
+        /**
+        * Moves sectio down
+        */
+        PP.moveSectionDown = function () {
+            var next = $('.pp-section.active').next('.pp-section');
+
+            //looping to the top if there's no more sections below
+            if(!next.length && options.loopBottom){
+                next = $('.pp-section').first();
+            }
+
+            if (next.length) {
+                scrollPage(next);
+            }
+        };
+
+        /**
+        * Moves the site to the given anchor or index
+        */
+        PP.moveTo = function (section){
+            var destiny = '';
+
+            if(isNaN(section)){
+                destiny = $(document).find('[data-anchor="'+section+'"]');
+            }else{
+                destiny = $('.pp-section').eq( (section -1) );
+            }
+
+
+            if(destiny.length > 0){
+                scrollPage(destiny);
+            }
+        };
+
+        //adding internal class names to void problem with common ones
+        $(options.sectionSelector).each(function(){
+            $(this).addClass('pp-section');
+        });
+
+        //if css3 is not supported, it will use jQuery animations
+        if(options.css3){
+            options.css3 = support3d();
+        }
+
+        $(container).css({
+            'overflow' : 'hidden',
+            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */
+            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/
+        });
+
+        //init
+        PP.setAllowScrolling(true);
+
+        //creating the navigation dots
+        if (!$.isEmptyObject(options.navigation) ) {
+            addVerticalNavigation();
+        }
+
+         var zIndex = $('.pp-section').length;
+
+        $('.pp-section').each(function (index) {
+            $(this).data('data-index', index);
+            $(this).css('z-index', zIndex);
+
+            //if no active section is defined, the 1st one will be the default one
+            if (!index && $('.pp-section.active').length === 0) {
+                $(this).addClass('active');
+            }
+
+            if (typeof options.anchors[index] !== 'undefined') {
+                $(this).attr('data-anchor', options.anchors[index]);
+            }
+
+            if (typeof options.sectionsColor[index] !== 'undefined') {
+                $(this).css('background-color', options.sectionsColor[index]);
+            }
+
+            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){
+                addTableClass($(this));
+            }
+
+            zIndex = zIndex - 1;
+        }).promise().done(function(){
+            //vertical centered of the navigation + first bullet active
+            if(options.navigation){
+                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');
+                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');
+            }
+
+            $(window).on('load', function() {
+                scrollToAnchor();
+            });
+
+            $.isFunction( options.afterRender ) && options.afterRender.call( this);
+        });
+
+        /**
+        * Enables vertical centering by wrapping the content and the use of table and table-cell
+        */
+        function addTableClass(element){
+            element.addClass('pp-table').wrapInner('<div class="pp-tableCell" style="height:100%" />');
+        }
+
+
+       /**
+        * Retuns `up` or `down` depending on the scrolling movement to reach its destination
+        * from the current section.
+        */
+        function getYmovement(destiny){
+            var fromIndex = $('.pp-section.active').index('.pp-section');
+            var toIndex = destiny.index('.pp-section');
+
+            if(fromIndex > toIndex){
+                return 'up';
+            }
+            return 'down';
+        }
+
+        /**
+        * Scrolls the page to the given destination
+        */
+        function scrollPage(destination, animated) {
+            var v ={
+                destination: destination,
+                animated: animated,
+                activeSection: $('.pp-section.active'),
+                anchorLink: destination.data('anchor'),
+                sectionIndex: destination.index('.pp-section'),
+                toMove: destination,
+                yMovement: getYmovement(destination),
+                leavingSection: $('.pp-section.active').index('.pp-section') + 1
+            };
+
+            //quiting when activeSection is the target element
+            if(v.activeSection.is(destination)){ return; }
+
+            if(typeof v.animated === 'undefined'){
+                v.animated = true;
+            }
+
+            if(typeof v.anchorLink !== 'undefined'){
+                setURLHash(v.anchorLink, v.sectionIndex);
+            }
+
+            v.destination.addClass('active').siblings().removeClass('active');
+
+            v.sectionsToMove = getSectionsToMove(v);
+
+            //scrolling down (moving sections up making them disappear)
+            if (v.yMovement === 'down') {
+                v.translate3d = getTranslate3d();
+                v.scrolling = '-100%';
+
+                if(!options.css3){
+                    v.sectionsToMove.each(function(index){
+                        if(index != v.activeSection.index('.pp-section')){
+                            $(this).css(getScrollProp(v.scrolling));
+                        }
+                    });
+                }
+
+                v.animateSection = v.activeSection;
+            }
+
+            //scrolling up (moving section down to the viewport)
+            else {
+                v.translate3d = 'translate3d(0px, 0px, 0px)';
+                v.scrolling = '0';
+
+                v.animateSection = destination;
+            }
+
+            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);
+
+            performMovement(v);
+
+            activateMenuElement(v.anchorLink);
+            activateNavDots(v.anchorLink, v.sectionIndex);
+            lastScrolledDestiny = v.anchorLink;
+
+            var timeNow = new Date().getTime();
+            lastAnimation = timeNow;
+        }
+
+        /**
+        * Performs the movement (by CSS3 or by jQuery)
+        */
+        function performMovement(v){
+            if(options.css3){
+                transformContainer(v.animateSection, v.translate3d, v.animated);
+
+                v.sectionsToMove.each(function(){
+                    transformContainer($(this), v.translate3d, v.animated);
+                });
+
+                setTimeout(function () {
+                    afterSectionLoads(v);
+                }, options.scrollingSpeed);
+            }else{
+                v.scrollOptions = getScrollProp(v.scrolling);
+
+                if(v.animated){
+                    v.animateSection.animate(
+                        v.scrollOptions,
+                    options.scrollingSpeed, options.easing, function () {
+                        readjustSections(v);
+                        afterSectionLoads(v);
+                    });
+                }else{
+                    v.animateSection.css(getScrollProp(v.scrolling));
+                    setTimeout(function(){
+                        readjustSections(v);
+                        afterSectionLoads(v);
+                    },400);
+                }
+            }
+        }
+
+        /**
+        * Actions to execute after a secion is loaded
+        */
+        function afterSectionLoads(v){
+            //callback (afterLoad) if the site is not just resizing and readjusting the slides
+            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));
+        }
+
+
+        function getSectionsToMove(v){
+            var sectionToMove;
+
+            if(v.yMovement === 'down'){
+                sectionToMove = $('.pp-section').map(function(index){
+                    if (index < v.destination.index('.pp-section')){
+                        return $(this);
+                    }
+                });
+            }else{
+                sectionToMove = $('.pp-section').map(function(index){
+                    if (index > v.destination.index('.pp-section')){
+                        return $(this);
+                    }
+                });
+            }
+
+            return sectionToMove;
+        }
+
+        /**
+        * Returns the sections to re-adjust in the background after the section loads.
+        */
+        function readjustSections(v){
+            if(v.yMovement === 'up'){
+                v.sectionsToMove.each(function(index){
+                    $(this).css(getScrollProp(v.scrolling));
+                });
+            }
+        }
+
+        /**
+        * Gets the property used to create the scrolling effect when using jQuery animations
+        * depending on the plugin direction option.
+        */
+        function getScrollProp(propertyValue){
+            if(options.direction === 'vertical'){
+                return {'top': propertyValue};
+            }
+            return {'left': propertyValue};
+        }
+
+        /**
+        * Scrolls the site without anymations (usually used in the background without the user noticing it)
+        */
+        function silentScroll(section, offset){
+            if (options.css3) {
+                transformContainer(section, getTranslate3d(), false);
+            }
+            else{
+                section.css(getScrollProp(offset));
+            }
+        }
+
+        /**
+        * Sets the URL hash for a section with slides
+        */
+        function setURLHash(anchorLink, sectionIndex){
+            if(options.anchors.length){
+                location.hash = anchorLink;
+
+                setBodyClass(location.hash);
+            }else{
+                setBodyClass(String(sectionIndex));
+            }
+        }
+
+        /**
+        * Sets a class for the body of the page depending on the active section / slide
+        */
+        function setBodyClass(text){
+            //removing the #
+            text = text.replace('#','');
+
+            //removing previous anchor classes
+            $('body')[0].className = $('body')[0].className.replace(/\b\s?pp-viewing-[^\s]+\b/g, '');
+
+            //adding the current anchor
+            $('body').addClass('pp-viewing-' + text);
+        }
+
+        //TO DO
+        function scrollToAnchor(){
+            //getting the anchor link in the URL and deleting the `#`
+            var value =  window.location.hash.replace('#', '');
+            var sectionAnchor = value;
+            var section = $(document).find('.pp-section[data-anchor="'+sectionAnchor+'"]');
+
+            if(section.length > 0){  //if theres any #
+                scrollPage(section, options.animateAnchor);
+            }
+        }
+
+        /**
+        * Determines if the transitions between sections still taking place.
+        * The variable `scrollDelay` adds a "save zone" for devices such as Apple laptops and Apple magic mouses
+        */
+        function isMoving(){
+            var timeNow = new Date().getTime();
+            // Cancel scroll if currently animating or within quiet period
+            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {
+                return true;
+            }
+            return false;
+        }
+
+        //detecting any change on the URL to scroll to the given anchor link
+        //(a way to detect back history button as we play with the hashes on the URL)
+        $(window).on('hashchange', hashChangeHandler);
+
+        /**
+        * Actions to do when the hash (#) in the URL changes.
+        */
+        function hashChangeHandler(){
+            var value =  window.location.hash.replace('#', '').split('/');
+            var sectionAnchor = value[0];
+
+            if(sectionAnchor.length){
+                /*in order to call scrollpage() only once for each destination at a time
+                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`
+                event is fired on every scroll too.*/
+                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {
+                    var section;
+
+                    if(isNaN(sectionAnchor)){
+                        section = $(document).find('[data-anchor="'+sectionAnchor+'"]');
+                    }else{
+                        section = $('.pp-section').eq( (sectionAnchor -1) );
+                    }
+                    scrollPage(section);
+                }
+            }
+        }
+
+        /**
+        * Cross browser transformations
+        */
+        function getTransforms(translate3d) {
+            return {
+                '-webkit-transform': translate3d,
+                    '-moz-transform': translate3d,
+                    '-ms-transform': translate3d,
+                    'transform': translate3d
+            };
+        }
+
+        /**
+         * Adds a css3 transform property to the container class with or without animation depending on the animated param.
+         */
+        function transformContainer(element, translate3d, animated) {
+            element.toggleClass('pp-easing', animated);
+
+            element.css(getTransforms(translate3d));
+        }
+
+        /**
+         * Sliding with arrow keys, both, vertical and horizontal
+         */
+        $(document).keydown(function (e) {
+            if(options.keyboardScrolling && !isMoving()){
+                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled
+                switch (e.which) {
+                        //up
+                    case 38:
+                    case 33:
+                        PP.moveSectionUp();
+                        break;
+
+                        //down
+                    case 40:
+                    case 34:
+                        PP.moveSectionDown();
+                        break;
+
+                        //Home
+                    case 36:
+                        PP.moveTo(1);
+                        break;
+
+                        //End
+                    case 35:
+                        PP.moveTo($('.pp-section').length);
+                        break;
+
+                        //left
+                    case 37:
+                        PP.moveSectionUp();
+                        break;
+
+                        //right
+                    case 39:
+                        PP.moveSectionDown();
+                        break;
+
+                    default:
+                        return; // exit this handler for other keys
+                }
+            }
+        });
+
+        /**
+        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally
+        * over the defined elements in the option.
+        */
+        if(options.normalScrollElements){
+            $(document).on('mouseenter', options.normalScrollElements, function () {
+                PP.setMouseWheelScrolling(false);
+            });
+
+            $(document).on('mouseleave', options.normalScrollElements, function(){
+                PP.setMouseWheelScrolling(true);
+            });
+        }
+
+        /**
+         * Detecting mousewheel scrolling
+         *
+         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
+         * http://www.sitepoint.com/html5-javascript-mouse-wheel/
+         */
+        function MouseWheelHandler(e) {
+            if(!isMoving()){
+                // cross-browser wheel delta
+                e = window.event || e;
+                var delta = Math.max(-1, Math.min(1,
+                        (e.wheelDelta || -e.deltaY || -e.detail)));
+
+                var activeSection = $('.pp-section.active');
+                var scrollable = isScrollable(activeSection);
+
+                //scrolling down?
+                if (delta < 0) {
+                    scrolling('down', scrollable);
+
+                //scrolling up?
+                }else {
+                    scrolling('up', scrollable);
+                }
+
+
+                return false;
+            }
+         }
+
+        /**
+        * Determines the way of scrolling up or down:
+        * by 'automatically' scrolling a section or by using the default and normal scrolling.
+        */
+        function scrolling(type, scrollable){
+            var check;
+            var scrollSection;
+
+            if(type == 'down'){
+                check = 'bottom';
+                scrollSection = PP.moveSectionDown;
+            }else{
+                check = 'top';
+                scrollSection = PP.moveSectionUp;
+            }
+
+            if(scrollable.length > 0 ){
+                //is the scrollbar at the start/end of the scroll?
+                if(isScrolled(check, scrollable)){
+                    scrollSection();
+                }else{
+                    return true;
+                }
+            }else{
+                // moved up/down
+                scrollSection();
+            }
+        }
+
+        /**
+        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling
+        * depending on the given type.
+        */
+        function isScrolled(type, scrollable){
+            if(type === 'top'){
+                return !scrollable.scrollTop();
+            }else if(type === 'bottom'){
+                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;
+            }
+        }
+
+         /**
+        * Determines whether the active section or slide is scrollable through and scrolling bar
+        */
+        function isScrollable(activeSection){
+            return activeSection.filter('.pp-scrollable');
+        }
+
+        /**
+        * Removes the auto scrolling action fired by the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.
+        */
+        function removeMouseWheelHandler(){
+            if (container.get(0).addEventListener) {
+                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox
+            } else {
+                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+        * Adds the auto scrolling action for the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements will scroll through sections
+        */
+        function addMouseWheelHandler(){
+            if (container.get(0).addEventListener) {
+                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox
+            } else {
+                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+        * Adds the possibility to auto scroll through sections on touch devices.
+        */
+        function addTouchHandler(){
+            if(isTouch){
+                //Microsoft pointers
+                var MSPointer = getMSPointer();
+
+                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);
+                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);
+            }
+        }
+
+        /**
+        * Removes the auto scrolling for touch devices.
+        */
+        function removeTouchHandler(){
+            if(isTouch){
+                //Microsoft pointers
+                var MSPointer = getMSPointer();
+
+                container.off('touchstart ' + MSPointer.down);
+                container.off('touchmove ' + MSPointer.move);
+            }
+        }
+
+        /*
+        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)
+        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx
+        */
+        function getMSPointer(){
+            var pointer;
+
+            //IE >= 11 & rest of browsers
+            if(window.PointerEvent){
+                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};
+            }
+
+            //IE < 11
+            else{
+                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};
+            }
+
+            return pointer;
+        }
+
+        /**
+        * Gets the pageX and pageY properties depending on the browser.
+        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
+        */
+        function getEventsPage(e){
+            var events = new Array();
+
+            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);
+            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);
+
+            return events;
+        }
+
+        /**
+        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen
+        * this way we make sure that is really a touch event what IE is detecting.
+        */
+        function isReallyTouch(e){
+            //if is not IE   ||  IE is detecting `touch` or `pen`
+            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';
+        }
+
+        /**
+        * Getting the starting possitions of the touch event
+        */
+        function touchStartHandler(event){
+            var e = event.originalEvent;
+
+            if(isReallyTouch(e)){
+                var touchEvents = getEventsPage(e);
+                touchStartY = touchEvents.y;
+                touchStartX = touchEvents.x;
+            }
+        }
+
+        /* Detecting touch events
+        */
+        function touchMoveHandler(event){
+            var e = event.originalEvent;
+
+            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain
+            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {
+
+                var activeSection = $('.pp-section.active');
+                var scrollable = isScrollable(activeSection);
+
+                if(!scrollable.length){
+                    event.preventDefault();
+                }
+
+                if (!isMoving()) {
+                    var touchEvents = getEventsPage(e);
+                    touchEndY = touchEvents.y;
+                    touchEndX = touchEvents.x;
+
+                  //$('body').append('<span style="position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;">touchEndY: ' + touchEndY  + '</div>');
+
+                    //X movement bigger than Y movement?
+                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {
+                        //is the movement greater than the minimum resistance to scroll?
+                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {
+                            if (touchStartX > touchEndX) {
+                                scrolling('down', scrollable);
+                            } else if (touchEndX > touchStartX) {
+                                scrolling('up', scrollable);
+                            }
+                        }
+                    } else {
+                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {
+                            if (touchStartY > touchEndY) {
+                                scrolling('down', scrollable);
+                            } else if (touchEndY > touchStartY) {
+                                scrolling('up', scrollable);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        /**
+         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements
+         * Currently works well for iOS - Android might need some testing
+         * @param  {Element} el  target element / jquery selector (in subsequent nodes)
+         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold
+         * @return {boolean} true if there is a match to options.normalScrollElements
+         */
+        function checkParentForNormalScrollElement (el, hop) {
+            hop = hop || 0;
+            var parent = $(el).parent();
+
+            if (hop < options.normalScrollElementTouchThreshold &&
+                parent.is(options.normalScrollElements) ) {
+                return true;
+            } else if (hop == options.normalScrollElementTouchThreshold) {
+                return false;
+            } else {
+                return checkParentForNormalScrollElement(parent, ++hop);
+            }
+        }
+
+
+        /**
+        * Creates a vertical navigation bar.
+        */
+        function addVerticalNavigation(){
+            $('body').append('<div id="pp-nav"><ul></ul></div>');
+            var nav = $('#pp-nav');
+
+            nav.css('color', options.navigation.textColor);
+
+            nav.addClass(options.navigation.position);
+
+            for(var cont = 0; cont < $('.pp-section').length; cont++){
+                var link = '';
+                if(options.anchors.length){
+                    link = options.anchors[cont];
+                }
+                if(options.navigation.tooltips !== 'undefined'){
+                    var tooltip = options.navigation.tooltips[cont];
+                    if(typeof tooltip === 'undefined'){
+                        tooltip = '';
+                    }
+                }
+
+                nav.find('ul').append('<li data-tooltip="' + tooltip + '"><a href="#' + link + '"><span></span></a></li>');
+            }
+
+            nav.find('span').css('border-color', options.navigation.bulletsColor);
+        }
+
+        /**
+        * Scrolls to the section when clicking the navigation bullet
+        */
+        $(document).on('click touchstart', '#pp-nav a', function(e){
+            e.preventDefault();
+            var index = $(this).parent().index();
+
+            scrollPage($('.pp-section').eq(index));
+        });
+
+        /**
+        * Navigation tooltips
+        */
+        $(document).on({
+            mouseenter: function(){
+                var tooltip = $(this).data('tooltip');
+                $('<div class="pp-tooltip ' + options.navigation.position +'">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);
+            },
+            mouseleave: function(){
+                $(this).find('.pp-tooltip').fadeOut(200, function() {
+                    $(this).remove();
+                });
+            }
+        }, '#pp-nav li');
+
+         /**
+         * Activating the website navigation dots according to the given slide name.
+         */
+        function activateNavDots(name, sectionIndex){
+            if(options.navigation){
+                $('#pp-nav').find('.active').removeClass('active');
+                if(name){
+                    $('#pp-nav').find('a[href="#' + name + '"]').addClass('active');
+                }else{
+                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');
+                }
+            }
+        }
+
+        /**
+         * Activating the website main menu elements according to the given slide name.
+         */
+        function activateMenuElement(name){
+            if(options.menu){
+                $(options.menu).find('.active').removeClass('active');
+                $(options.menu).find('[data-menuanchor="'+name+'"]').addClass('active');
+            }
+        }
+
+        /**
+        * Checks for translate3d support
+        * @return boolean
+        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
+        */
+        function support3d() {
+            var el = document.createElement('p'),
+                has3d,
+                transforms = {
+                    'webkitTransform':'-webkit-transform',
+                    'OTransform':'-o-transform',
+                    'msTransform':'-ms-transform',
+                    'MozTransform':'-moz-transform',
+                    'transform':'transform'
+                };
+
+            // Add it to the body to get the computed style.
+            document.body.insertBefore(el, null);
+
+            for (var t in transforms) {
+                if (el.style[t] !== undefined) {
+                    el.style[t] = 'translate3d(1px,1px,1px)';
+                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
+                }
+            }
+
+            document.body.removeChild(el);
+
+            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');
+        }
+
+        /**
+        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.
+        */
+        function getTranslate3d(){
+            if (options.direction !== 'vertical') {
+                  return 'translate3d(-100%, 0px, 0px)';
+            }
+
+            return 'translate3d(0px, -100%, 0px)';
+        }
+
+    };
+})(jQuery, document, window);
\ No newline at end of file
diff --git a/dist/jquery.pagepiling.min.css b/dist/jquery.pagepiling.min.css
new file mode 100644
index 0000000..1cf264b
--- /dev/null
+++ b/dist/jquery.pagepiling.min.css
@@ -0,0 +1,9 @@
+/*!
+ * pagepiling.js 1.5.3
+ *
+ * https://github.com/alvarotrigo/pagePiling.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */body,html{overflow:hidden;margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pp-section{height:100%;position:absolute;width:100%}.pp-easing{-webkit-transition:all 1s cubic-bezier(.55,.085,0,.99);-moz-transition:all 1s cubic-bezier(.55,.085,0,.99);-o-transition:all 1s cubic-bezier(.55,.085,0,.99);transition:all 1s cubic-bezier(.55,.085,0,.99);-webkit-transition-timing-function:cubic-bezier(.55,.085,0,.99);-moz-transition-timing-function:cubic-bezier(.55,.085,0,.99);-o-transition-timing-function:cubic-bezier(.55,.085,0,.99);transition-timing-function:cubic-bezier(.55,.085,0,.99)}#pp-nav{position:fixed;z-index:100;margin-top:-32px;top:50%;opacity:1}#pp-nav.right{right:17px}#pp-nav.left{left:17px}.pp-section.pp-table{display:table}.pp-tableCell{display:table-cell;vertical-align:middle;width:100%;height:100%}.pp-slidesNav{position:absolute;z-index:4;left:50%;opacity:1}.pp-slidesNav.bottom{bottom:17px}.pp-slidesNav.top{top:17px}#pp-nav ul,.pp-slidesNav ul{margin:0;padding:0}#pp-nav li,.pp-slidesNav li{display:block;width:14px;height:13px;margin:7px;position:relative}.pp-slidesNav li{display:inline-block}#pp-nav li a,.pp-slidesNav li a{display:block;position:relative;z-index:1;width:100%;height:100%;cursor:pointer;text-decoration:none}#pp-nav li .active span,.pp-slidesNav .active span{background:#333}#pp-nav span,.pp-slidesNav span{top:2px;left:2px;width:8px;height:8px;border:1px solid #000;background:rgba(0,0,0,0);border-radius:50%;position:absolute;z-index:1}.pp-tooltip{position:absolute;top:-2px;color:#fff;font-size:14px;font-family:arial,helvetica,sans-serif;white-space:nowrap;max-width:220px}.pp-tooltip.right{right:20px}.pp-tooltip.left{left:20px}.pp-scrollable{overflow-y:scroll;height:100%}
+/*# sourceMappingURL=jquery.pagepiling.min.css.map */
diff --git a/dist/jquery.pagepiling.min.css.map b/dist/jquery.pagepiling.min.css.map
new file mode 100644
index 0000000..a9c004b
--- /dev/null
+++ b/dist/jquery.pagepiling.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAEV,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAoH,6BACpH,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourceRoot":"/source/","sourcesContent":["/*!\r\n * pagepiling.js 1.5.3\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}"]}
\ No newline at end of file
diff --git a/dist/jquery.pagepiling.min.js b/dist/jquery.pagepiling.min.js
new file mode 100644
index 0000000..3a7d024
--- /dev/null
+++ b/dist/jquery.pagepiling.min.js
@@ -0,0 +1,10 @@
+/*!
+ * pagepiling.js 1.5.3
+ *
+ * https://github.com/alvarotrigo/pagePiling.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+!function(n,e,t,o){"use strict";n.fn.pagepiling=function(i){function a(n){n.addClass("pp-table").wrapInner('<div class="pp-tableCell" style="height:100%" />')}function s(e){var t=n(".pp-section.active").index(".pp-section"),o=e.index(".pp-section");return t>o?"up":"down"}function c(e,t){var o={destination:e,animated:t,activeSection:n(".pp-section.active"),anchorLink:e.data("anchor"),sectionIndex:e.index(".pp-section"),toMove:e,yMovement:s(e),leavingSection:n(".pp-section.active").index(".pp-section")+1};if(!o.activeSection.is(e)){"undefined"==typeof o.animated&&(o.animated=!0),"undefined"!=typeof o.anchorLink&&v(o.anchorLink,o.sectionIndex),o.destination.addClass("active").siblings().removeClass("active"),o.sectionsToMove=p(o),"down"===o.yMovement?(o.translate3d=U(),o.scrolling="-100%",G.css3||o.sectionsToMove.each(function(e){e!=o.activeSection.index(".pp-section")&&n(this).css(u(o.scrolling))}),o.animateSection=o.activeSection):(o.translate3d="translate3d(0px, 0px, 0px)",o.scrolling="0",o.animateSection=e),n.isFunction(G.onLeave)&&G.onLeave.call(this,o.leavingSection,o.sectionIndex+1,o.yMovement),r(o),A(o.anchorLink),z(o.anchorLink,o.sectionIndex),W=o.anchorLink;var i=(new Date).getTime();F=i}}function r(e){G.css3?(w(e.animateSection,e.translate3d,e.animated),e.sectionsToMove.each(function(){w(n(this),e.translate3d,e.animated)}),setTimeout(function(){l(e)},G.scrollingSpeed)):(e.scrollOptions=u(e.scrolling),e.animated?e.animateSection.animate(e.scrollOptions,G.scrollingSpeed,G.easing,function(){d(e),l(e)}):(e.animateSection.css(u(e.scrolling)),setTimeout(function(){d(e),l(e)},400)))}function l(e){n.isFunction(G.afterLoad)&&G.afterLoad.call(this,e.anchorLink,e.sectionIndex+1)}function p(e){var t;return t="down"===e.yMovement?n(".pp-section").map(function(t){if(t<e.destination.index(".pp-section"))return n(this)}):n(".pp-section").map(function(t){if(t>e.destination.index(".pp-section"))return n(this)})}function d(e){"up"===e.yMovement&&e.sectionsToMove.each(function(t){n(this).css(u(e.scrolling))})}function u(n){return"vertical"===G.direction?{top:n}:{left:n}}function v(n,e){G.anchors.length?(location.hash=n,f(location.hash)):f(String(e))}function f(e){e=e.replace("#",""),n("body")[0].className=n("body")[0].className.replace(/\b\s?pp-viewing-[^\s]+\b/g,""),n("body").addClass("pp-viewing-"+e)}function h(){var o=t.location.hash.replace("#",""),i=o,a=n(e).find('.pp-section[data-anchor="'+i+'"]');a.length>0&&c(a,G.animateAnchor)}function m(){var n=(new Date).getTime();return n-F<V+G.scrollingSpeed}function g(){var o=t.location.hash.replace("#","").split("/"),i=o[0];if(i.length&&i&&i!==W){var a;a=isNaN(i)?n(e).find('[data-anchor="'+i+'"]'):n(".pp-section").eq(i-1),c(a)}}function S(n){return{"-webkit-transform":n,"-moz-transform":n,"-ms-transform":n,transform:n}}function w(n,e,t){n.toggleClass("pp-easing",t),n.css(S(e))}function y(e){if(!m()){e=t.event||e;var o=Math.max(-1,Math.min(1,e.wheelDelta||-e.deltaY||-e.detail)),i=n(".pp-section.active"),a=T(i);return o<0?x("down",a):x("up",a),!1}}function x(n,e){var t,o;if("down"==n?(t="bottom",o=X.moveSectionDown):(t="top",o=X.moveSectionUp),e.length>0){if(!b(t,e))return!0;o()}else o()}function b(n,e){return"top"===n?!e.scrollTop():"bottom"===n?e.scrollTop()+1+e.innerHeight()>=e[0].scrollHeight:void 0}function T(n){return n.filter(".pp-scrollable")}function C(){B.get(0).addEventListener?(B.get(0).removeEventListener("mousewheel",y,!1),B.get(0).removeEventListener("wheel",y,!1)):B.get(0).detachEvent("onmousewheel",y)}function M(){B.get(0).addEventListener?(B.get(0).addEventListener("mousewheel",y,!1),B.get(0).addEventListener("wheel",y,!1)):B.get(0).attachEvent("onmousewheel",y)}function k(){if(Q){var n=L();B.off("touchstart "+n.down).on("touchstart "+n.down,P),B.off("touchmove "+n.move).on("touchmove "+n.move,N)}}function E(){if(Q){var n=L();B.off("touchstart "+n.down),B.off("touchmove "+n.move)}}function L(){var n;return n=t.PointerEvent?{down:"pointerdown",move:"pointermove",up:"pointerup"}:{down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp"}}function D(n){var e=new Array;return e.y="undefined"!=typeof n.pageY&&(n.pageY||n.pageX)?n.pageY:n.touches[0].pageY,e.x="undefined"!=typeof n.pageX&&(n.pageY||n.pageX)?n.pageX:n.touches[0].pageX,e}function I(n){return"undefined"==typeof n.pointerType||"mouse"!=n.pointerType}function P(n){var e=n.originalEvent;if(I(e)){var t=D(e);R=t.y,j=t.x}}function N(e){var t=e.originalEvent;if(!Y(e.target)&&I(t)){var o=n(".pp-section.active"),i=T(o);if(i.length||e.preventDefault(),!m()){var a=D(t);H=a.y,K=a.x,"horizontal"===G.direction&&Math.abs(j-K)>Math.abs(R-H)?Math.abs(j-K)>B.width()/100*G.touchSensitivity&&(j>K?x("down",i):K>j&&x("up",i)):Math.abs(R-H)>B.height()/100*G.touchSensitivity&&(R>H?x("down",i):H>R&&x("up",i))}}}function Y(e,t){t=t||0;var o=n(e).parent();return!!(t<G.normalScrollElementTouchThreshold&&o.is(G.normalScrollElements))||t!=G.normalScrollElementTouchThreshold&&Y(o,++t)}function q(){n("body").append('<div id="pp-nav"><ul></ul></div>');var e=n("#pp-nav");e.css("color",G.navigation.textColor),e.addClass(G.navigation.position);for(var t=0;t<n(".pp-section").length;t++){var o="";if(G.anchors.length&&(o=G.anchors[t]),"undefined"!==G.navigation.tooltips){var i=G.navigation.tooltips[t];"undefined"==typeof i&&(i="")}e.find("ul").append('<li data-tooltip="'+i+'"><a href="#'+o+'"><span></span></a></li>')}e.find("span").css("border-color",G.navigation.bulletsColor)}function z(e,t){G.navigation&&(n("#pp-nav").find(".active").removeClass("active"),e?n("#pp-nav").find('a[href="#'+e+'"]').addClass("active"):n("#pp-nav").find("li").eq(t).find("a").addClass("active"))}function A(e){G.menu&&(n(G.menu).find(".active").removeClass("active"),n(G.menu).find('[data-menuanchor="'+e+'"]').addClass("active"))}function O(){var n,i=e.createElement("p"),a={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};e.body.insertBefore(i,null);for(var s in a)i.style[s]!==o&&(i.style[s]="translate3d(1px,1px,1px)",n=t.getComputedStyle(i).getPropertyValue(a[s]));return e.body.removeChild(i),n!==o&&n.length>0&&"none"!==n}function U(){return"vertical"!==G.direction?"translate3d(-100%, 0px, 0px)":"translate3d(0px, -100%, 0px)"}var W,X=n.fn.pagepiling,B=n(this),F=0,Q="ontouchstart"in t||navigator.msMaxTouchPoints>0||navigator.maxTouchPoints,R=0,j=0,H=0,K=0,V=600,G=n.extend(!0,{direction:"vertical",menu:null,verticalCentered:!0,sectionsColor:[],anchors:[],scrollingSpeed:700,easing:"easeInQuart",loopBottom:!1,loopTop:!1,css3:!0,navigation:{textColor:"#000",bulletsColor:"#000",position:"right",tooltips:[]},normalScrollElements:null,normalScrollElementTouchThreshold:5,touchSensitivity:5,keyboardScrolling:!0,sectionSelector:".section",animateAnchor:!1,afterLoad:null,onLeave:null,afterRender:null},i);n.extend(n.easing,{easeInQuart:function(n,e,t,o,i){return o*(e/=i)*e*e*e+t}}),X.setScrollingSpeed=function(n){G.scrollingSpeed=n},X.setMouseWheelScrolling=function(n){n?M():C()},X.setAllowScrolling=function(n){n?(X.setMouseWheelScrolling(!0),k()):(X.setMouseWheelScrolling(!1),E())},X.setKeyboardScrolling=function(n){G.keyboardScrolling=n},X.moveSectionUp=function(){var e=n(".pp-section.active").prev(".pp-section");!e.length&&G.loopTop&&(e=n(".pp-section").last()),e.length&&c(e)},X.moveSectionDown=function(){var e=n(".pp-section.active").next(".pp-section");!e.length&&G.loopBottom&&(e=n(".pp-section").first()),e.length&&c(e)},X.moveTo=function(t){var o="";o=isNaN(t)?n(e).find('[data-anchor="'+t+'"]'):n(".pp-section").eq(t-1),o.length>0&&c(o)},n(G.sectionSelector).each(function(){n(this).addClass("pp-section")}),G.css3&&(G.css3=O()),n(B).css({overflow:"hidden","-ms-touch-action":"none","touch-action":"none"}),X.setAllowScrolling(!0),n.isEmptyObject(G.navigation)||q();var J=n(".pp-section").length;n(".pp-section").each(function(e){n(this).data("data-index",e),n(this).css("z-index",J),e||0!==n(".pp-section.active").length||n(this).addClass("active"),"undefined"!=typeof G.anchors[e]&&n(this).attr("data-anchor",G.anchors[e]),"undefined"!=typeof G.sectionsColor[e]&&n(this).css("background-color",G.sectionsColor[e]),G.verticalCentered&&!n(this).hasClass("pp-scrollable")&&a(n(this)),J-=1}).promise().done(function(){G.navigation&&(n("#pp-nav").css("margin-top","-"+n("#pp-nav").height()/2+"px"),n("#pp-nav").find("li").eq(n(".pp-section.active").index(".pp-section")).find("a").addClass("active")),n(t).on("load",function(){h()}),n.isFunction(G.afterRender)&&G.afterRender.call(this)}),n(t).on("hashchange",g),n(e).keydown(function(e){if(G.keyboardScrolling&&!m())switch(e.which){case 38:case 33:X.moveSectionUp();break;case 40:case 34:X.moveSectionDown();break;case 36:X.moveTo(1);break;case 35:X.moveTo(n(".pp-section").length);break;case 37:X.moveSectionUp();break;case 39:X.moveSectionDown();break;default:return}}),G.normalScrollElements&&(n(e).on("mouseenter",G.normalScrollElements,function(){X.setMouseWheelScrolling(!1)}),n(e).on("mouseleave",G.normalScrollElements,function(){X.setMouseWheelScrolling(!0)})),n(e).on("click touchstart","#pp-nav a",function(e){e.preventDefault();var t=n(this).parent().index();c(n(".pp-section").eq(t))}),n(e).on({mouseenter:function(){var e=n(this).data("tooltip");n('<div class="pp-tooltip '+G.navigation.position+'">'+e+"</div>").hide().appendTo(n(this)).fadeIn(200)},mouseleave:function(){n(this).find(".pp-tooltip").fadeOut(200,function(){n(this).remove()})}},"#pp-nav li")}}(jQuery,document,window);
+//# sourceMappingURL=jquery.pagepiling.min.js.map
diff --git a/dist/jquery.pagepiling.min.js.map b/dist/jquery.pagepiling.min.js.map
new file mode 100644
index 0000000..f86e46d
--- /dev/null
+++ b/dist/jquery.pagepiling.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","event","delta","Math","max","min","wheelDelta","deltaY","detail","scrollable","isScrollable","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","abs","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.3\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        function MouseWheelHandler(e) {\r\n            if(!isMoving()){\r\n                // cross-browser wheel delta\r\n                e = window.event || e;\r\n                var delta = Math.max(-1, Math.min(1,\r\n                        (e.wheelDelta || -e.deltaY || -e.detail)));\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                //scrolling down?\r\n                if (delta < 0) {\r\n                    scrolling('down', scrollable);\r\n\r\n                //scrolling up?\r\n                }else {\r\n                    scrolling('up', scrollable);\r\n                }\r\n\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                // moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"],"sourceRoot":"/source/"}
\ No newline at end of file
diff --git a/examples/examples.css b/examples/examples.css
index 546c43a..977bffb 100644
--- a/examples/examples.css
+++ b/examples/examples.css
@@ -1,307 +1,322 @@
-@CHARSET "ISO-8859-1";
-/* Reset CSS
- * --------------------------------------- */
-body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
-form,fieldset,input,textarea,p,blockquote,th,td {
-    padding: 0;
-    margin: 0;
-}
-a{
-	text-decoration:none;
-}
-table {
-    border-spacing: 0;
-}
-fieldset,img {
-    border: 0;
-}
-address,caption,cite,code,dfn,em,strong,th,var {
-    font-weight: normal;
-    font-style: normal;
-}
-strong{
-	font-weight: bold;
-}
-ol,ul {
-    list-style: none;
-    margin:0;
-    padding:0;
-}
-caption,th {
-    text-align: left;
-
-}
-h1,h2,h3,h4,h5,h6 {
-    font-weight: normal;
-    font-size: 100%;
-    margin:0;
-    padding:0;
-    color:#f2f2f2;
-}
-q:before,q:after {
-    content:'';
-}
-abbr,acronym { border: 0;
-}
-
-/* Custom CSS
- * --------------------------------------- */
-body{
-	font-family: 'Lato', Calibri, Arial, sans-serif;
-	color: #f2f2f2;
-}
-h1{
-	font-size: 6em;
-}
-p{
-	font-size: 2em;
-}
-.section{
-	text-align: center;
-}
-
-/* Menu
- * --------------------------------------- */
-#menu li {
-	display:inline-block;
-	margin: 10px;
-	color: #000;
-	background:#fff;
-	background: rgba(255,255,255, 0.5);
-	-webkit-border-radius: 10px;
-            border-radius: 10px;
-}
-#menu li.active{
-	background:#666;
-	background: rgba(0,0,0, 0.5);
-	color: #fff;
-}
-#menu li a{
-	text-decoration:none;
-	color: #000;
-}
-#menu li.active a:hover{
-	color: #000;
-}
-#menu li:hover{
-	background: rgba(255,255,255, 0.8);
-}
-#menu li a,
-#menu li.active a{
-	padding: 9px 18px;
-	display:block;
-}
-#menu li.active a{
-	color: #fff;
-}
-#menu{
-	position:fixed;
-	top:0;
-	left:0;
-	height: 40px;
-	z-index: 70;
-	width: 100%;
-	padding: 0;
-	margin:0;
-}
-
-
-.intro p{
-	width: 50%;
-	margin: 0 auto;
-	font-size: 1.5em;
-}
-.twitter-share-button{
-	position: fixed;
-	z-index: 99;
-	right: 149px;
-	top: 9px;
-}
-
-#download{
-	margin: 10px 0 0 0;
-	padding: 15px 10px;
-	color: #fff;
-	text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
-	background-color: #49afcd;
-	background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -webkit-gradient(linear,0 0,0 100%,from( #5bc0de),to( #2f96b4));
-	background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: linear-gradient(top, #5bc0de, #2f96b4);
-	background-repeat: repeat-x;
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
-	border-color: #2f96b4 #2f96b4 #1f6377;
-	border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
-	filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-
-	-webkit-border-radius: 6px;
-	-moz-border-radius: 6px;
-	border-radius: 6px;
-	vertical-align: middle;
-	cursor: pointer;
-	display: inline-block;
-	-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-	-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-	box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-}
-#download a{
-	text-decoration:none;
-	color:#fff;
-}
-#download:hover{
-	text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-	background-color: #2F96B4;
-	background-position: 0 -15px;
-	-webkit-transition: background-position .1s linear;
-	-moz-transition: background-position .1s linear;
-	-ms-transition: background-position .1s linear;
-	-o-transition: background-position .1s linear;
-	transition: background-position .1s linear;
-}
-
-#infoMenu{
-	height: 20px;
-	color: #f2f2f2;
-	position:fixed;
-	z-index:70;
-	bottom:0;
-	width:100%;
-	text-align:right;
-	font-size:0.9em;
-	padding:8px 0 8px 0;
-}
-#infoMenu ul{
-	padding: 0 40px;
-}
-#infoMenu li a{
-	display: block;
-	margin: 0 22px 0 0;
-	color: #333;
-}
-#infoMenu li a:hover{
-	text-decoration:underline;
-}
-#infoMenu li{
-	display:inline-block;
-	position:relative;
-}
-#examplesList{
-	display:none;
-	background: #282828;
-	-webkit-border-radius: 6px;
-	-moz-border-radius: 6px;
-	border-radius: 6px;
-	padding: 20px;
-	float: left;
-	position: absolute;
-	bottom: 29px;
-	right: 0;
-	width:638px;
-	text-align:left;
-}
-#examplesList ul{
-	padding:0;
-}
-#examplesList ul li{
-	display:block;
-	margin: 5px 0;
-}
-#examplesList ul li a{
-	color: #BDBDBD;
-	margin:0;
-}
-#examplesList ul li a:hover{
-	color: #f2f2f2;
-}
-#examplesList .column{
-	float: left;
-	margin: 0 20px 0 0;
-}
-#examplesList h3{
-	color: #f2f2f2;
-	font-size: 1.2em;
-	margin: 0 0 15px 0;
-	border-bottom: 1px solid rgba(0, 0, 0, 0.4);
-	-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
-	-moz-box-shadow: 0 1px 0 rgba(255,255,255,0.1);
-	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
-	padding: 0 0 5px 0;
-}
-
-/* Section 1
- * --------------------------------------- */
-#section1 h1{
-	color: #444;
-}
-#section1 p{
-	color: #333;
-	color: rgba(0,0,0,0.3);
-}
-#section1 img{
-	margin: 20px 0;
-	opacity: 0.7;
-}
-
-/* Section 2
- * --------------------------------------- */
-#section2 h1,
-#section2 p{
-	z-index: 3;
-}
-#section2 p{
-	opacity: 0.8;
-}
-
-#section2 #colors{
-	right: 60px;
-	bottom: 0;
-	position: absolute;
-	height: 413px;
-	width: 258px;
-	background-image: url(imgs/colors.gif);
-	background-repeat: no-repeat;
-}
-
-/* Section 3
- * --------------------------------------- */
-#section3 #colors{
-	left: 60px;
-	bottom: 0;
-}
-#section3 p{
-	color: #757575;
-}
-
-#colors2,
-#colors3{
-	position: absolute;
-	height: 163px;
-	width: 362px;
-	z-index: 1;
-	background-repeat: no-repeat;
-	left: 0;
-	margin: 0 auto;
-	right: 0;
-}
-#colors2{
-	background-image: url(imgs/colors2.gif);
-	top:0;
-}
-#colors3{
-	background-image: url(imgs/colors3.gif);
-	bottom:0;
-}
-
-/* Section 4
- * --------------------------------------- */
-#section4 p{
-	opacity: 0.6;
-}
-
-/* Overwriting fullPage.js tooltip color
-* --------------------------------------- */
-#pp-nav.custom .pp-tooltip{
-	color: #AAA;
-}
+@CHARSET "ISO-8859-1";
+/* Reset CSS
+ * --------------------------------------- */
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
+form,fieldset,input,textarea,p,blockquote,th,td {
+    padding: 0;
+    margin: 0;
+}
+a{
+	text-decoration:none;
+}
+table {
+    border-spacing: 0;
+}
+fieldset,img {
+    border: 0;
+}
+address,caption,cite,code,dfn,em,strong,th,var {
+    font-weight: normal;
+    font-style: normal;
+}
+strong{
+	font-weight: bold;
+}
+ol,ul {
+    list-style: none;
+    margin:0;
+    padding:0;
+}
+caption,th {
+    text-align: left;
+
+}
+h1,h2,h3,h4,h5,h6 {
+    font-weight: normal;
+    font-size: 100%;
+    margin:0;
+    padding:0;
+    color:#f2f2f2;
+}
+q:before,q:after {
+    content:'';
+}
+abbr,acronym { border: 0;
+}
+
+/* Custom CSS
+ * --------------------------------------- */
+body{
+	font-family: 'Lato', Calibri, Arial, sans-serif;
+	color: #f2f2f2;
+}
+h1{
+	font-size: 6em;
+}
+p{
+	font-size: 2em;
+}
+.section{
+	text-align: center;
+}
+
+/* Menu
+ * --------------------------------------- */
+#menu li {
+	display:inline-block;
+	margin: 10px;
+	color: #000;
+	background:#fff;
+	background: rgba(255,255,255, 0.5);
+	-webkit-border-radius: 10px;
+            border-radius: 10px;
+}
+#menu li.active{
+	background:#666;
+	background: rgba(0,0,0, 0.5);
+	color: #fff;
+}
+#menu li a{
+	text-decoration:none;
+	color: #000;
+}
+#menu li.active a:hover{
+	color: #000;
+}
+#menu li:hover{
+	background: rgba(255,255,255, 0.8);
+}
+#menu li a,
+#menu li.active a{
+	padding: 9px 18px;
+	display:block;
+}
+#menu li.active a{
+	color: #fff;
+}
+#menu{
+	position:fixed;
+	top:0;
+	left:0;
+	height: 40px;
+	z-index: 70;
+	width: 100%;
+	padding: 0;
+	margin:0;
+}
+
+
+.intro p{
+	width: 50%;
+	margin: 0 auto;
+	font-size: 1.5em;
+}
+.twitter-share-button{
+	position: fixed !important;
+	z-index: 99;
+	right: 149px;
+	top: 9px;
+}
+
+#download{
+	margin: 10px 0 0 0;
+	padding: 15px 10px;
+	color: #fff;
+	text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
+	background-color: #49afcd;
+	background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
+	background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
+	background-image: -webkit-gradient(linear,0 0,0 100%,from( #5bc0de),to( #2f96b4));
+	background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
+	background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
+	background-image: linear-gradient(top, #5bc0de, #2f96b4);
+	background-repeat: repeat-x;
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
+	border-color: #2f96b4 #2f96b4 #1f6377;
+	border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
+	filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+
+	-webkit-border-radius: 6px;
+	-moz-border-radius: 6px;
+	border-radius: 6px;
+	vertical-align: middle;
+	cursor: pointer;
+	display: inline-block;
+	-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
+	-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
+	box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
+}
+#download a{
+	text-decoration:none;
+	color:#fff;
+}
+#download:hover{
+	text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+	background-color: #2F96B4;
+	background-position: 0 -15px;
+	-webkit-transition: background-position .1s linear;
+	-moz-transition: background-position .1s linear;
+	-ms-transition: background-position .1s linear;
+	-o-transition: background-position .1s linear;
+	transition: background-position .1s linear;
+}
+
+#infoMenu{
+	height: 20px;
+	color: #f2f2f2;
+	position:fixed;
+	z-index:70;
+	bottom:0;
+	width:100%;
+	text-align:right;
+	font-size:0.9em;
+	padding:8px 0 8px 0;
+}
+#infoMenu ul{
+	padding: 0 40px;
+}
+#infoMenu li a{
+	display: block;
+	margin: 0 22px 0 0;
+	color: #333;
+}
+#infoMenu li a:hover{
+	text-decoration:underline;
+}
+#infoMenu li{
+	display:inline-block;
+	position:relative;
+}
+#examplesList{
+	display:none;
+	background: #282828;
+	-webkit-border-radius: 6px;
+	-moz-border-radius: 6px;
+	border-radius: 6px;
+	padding: 20px;
+	float: left;
+	position: absolute;
+	bottom: 29px;
+	right: 0;
+	width:638px;
+	text-align:left;
+}
+#examplesList ul{
+	padding:0;
+}
+#examplesList ul li{
+	display:block;
+	margin: 5px 0;
+}
+#examplesList ul li a{
+	color: #BDBDBD;
+	margin:0;
+}
+#examplesList ul li a:hover{
+	color: #f2f2f2;
+}
+#examplesList .column{
+	float: left;
+	margin: 0 20px 0 0;
+}
+#examplesList h3{
+	color: #f2f2f2;
+	font-size: 1.2em;
+	margin: 0 0 15px 0;
+	border-bottom: 1px solid rgba(0, 0, 0, 0.4);
+	-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
+	-moz-box-shadow: 0 1px 0 rgba(255,255,255,0.1);
+	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
+	padding: 0 0 5px 0;
+}
+
+/* Section 1
+ * --------------------------------------- */
+#section1 h1{
+	color: #444;
+}
+#section1 p{
+	color: #333;
+	color: rgba(0,0,0,0.3);
+}
+#section1 img{
+	margin: 20px 0;
+	opacity: 0.7;
+}
+
+/* Section 2
+ * --------------------------------------- */
+#section2 h1,
+#section2 p{
+	z-index: 3;
+}
+#section2 p{
+	opacity: 0.8;
+}
+
+#section2 #colors{
+	right: 60px;
+	bottom: 0;
+	position: absolute;
+	height: 413px;
+	width: 258px;
+	background-image: url(imgs/colors.gif);
+	background-repeat: no-repeat;
+}
+
+/* Section 3
+ * --------------------------------------- */
+#section3 #colors{
+	left: 60px;
+	bottom: 0;
+}
+#section3 p{
+	color: #757575;
+}
+
+#colors2,
+#colors3{
+	position: absolute;
+	height: 163px;
+	width: 362px;
+	z-index: 1;
+	background-repeat: no-repeat;
+	left: 0;
+	margin: 0 auto;
+	right: 0;
+}
+#colors2{
+	background-image: url(imgs/colors2.gif);
+	top:0;
+}
+#colors3{
+	background-image: url(imgs/colors3.gif);
+	bottom:0;
+}
+
+/* Section 4
+ * --------------------------------------- */
+#section4 p{
+	opacity: 0.6;
+}
+
+/* Overwriting fullPage.js tooltip color
+* --------------------------------------- */
+#pp-nav.custom .pp-tooltip{
+	color: #AAA;
+}
+
+
+.twitter-share-button{
+	position: fixed;
+	z-index: 99;
+	right: 149px;
+	top: 9px;
+}
+#starGithub{
+	position: fixed;
+	z-index: 99;
+	right: 264px;
+	top: 9px;
+	width: 90px;
+}
\ No newline at end of file
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644
index 0000000..0140d12
--- /dev/null
+++ b/gulpfile.js
@@ -0,0 +1,34 @@
+var gulp = require('gulp');
+var rename = require('gulp-rename');
+var sourcemaps = require('gulp-sourcemaps');
+var uglify = require('gulp-uglify');
+var sass = require('gulp-sass');
+var minifyCss = require('gulp-clean-css');
+
+gulp.task('css', function() {
+    gulp.src('./jquery.pagepiling.css')
+        .pipe(sourcemaps.init())
+        .pipe(gulp.dest('./dist'))
+        .pipe(minifyCss({
+            compatibility: 'ie8',
+            advanced: false,
+            keepSpecialComments: '1'
+        }))
+        .pipe(rename({suffix: '.min'}))
+        .pipe(sourcemaps.write('.')) 
+        .pipe(gulp.dest('./dist'));
+});
+
+gulp.task('js', function() {
+    gulp.src('./jquery.pagepiling.js')
+        .pipe(sourcemaps.init())
+        .pipe(gulp.dest('./dist'))
+        .pipe(uglify({
+            preserveComments: 'license'
+        }))
+        .pipe(rename({suffix: '.min'}))
+        .pipe(sourcemaps.write('.'))
+        .pipe(gulp.dest('./dist'));
+});
+
+gulp.task('default', ['css', 'js']);
\ No newline at end of file
diff --git a/jquery.pagepiling.css b/jquery.pagepiling.css
index 80b2bb5..baf0594 100644
--- a/jquery.pagepiling.css
+++ b/jquery.pagepiling.css
@@ -1,11 +1,10 @@
 /*!
  * pagepiling.js 1.5.3
  *
- * https://github.com/alvarotrigo/fullPage.js
- * MIT licensed
- *
- * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ * https://github.com/alvarotrigo/pagePiling.js
+ * @license MIT licensed
  *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
 html, body {
     overflow:hidden;
diff --git a/jquery.pagepiling.js b/jquery.pagepiling.js
index 8046257..48e74db 100644
--- a/jquery.pagepiling.js
+++ b/jquery.pagepiling.js
@@ -2,9 +2,9 @@
  * pagepiling.js 1.5.3
  *
  * https://github.com/alvarotrigo/pagePiling.js
- * MIT licensed
+ * @license MIT licensed
  *
- * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
 (function ($, document, window, undefined) {
     'use strict';
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..e04a824
--- /dev/null
+++ b/package.json
@@ -0,0 +1,37 @@
+{
+  "name": "pagepiling.js",
+  "version": "1.5.3",
+  "description": "Create a scrolling pile of sections",
+  "main": "jquery.pagepiling.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+ssh://git@github.com/alvarotrigo/pagePiling.js.git"
+  },
+  "keywords": [
+    "jquery",
+    "scrolling",
+    "pile",
+    "sections",
+    "slides"
+  ],
+  "authors": [
+    "Alvaro Trigo https://github.com/alvarotrigo"
+  ],
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/alvarotrigo/pagePiling.js/issues"
+  },
+  "homepage": "https://github.com/alvarotrigo/pagePiling.js#readme",
+  "namespace": "$.fn.pagepiling",
+  "devDependencies": {
+    "gulp": "^3.9.0",
+    "gulp-clean-css": "^2.0.8",
+    "gulp-rename": "^1.2.2",
+    "gulp-sass": "^2.0.4",
+    "gulp-sourcemaps": "^1.6.0",
+    "gulp-uglify": "^1.4.1"
+  }
+}

From 217d1df6ce1221d2e96d68ac8581254ccfc174b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro?= <atrigol@gmail.com>
Date: Thu, 7 Jul 2016 17:42:48 +0200
Subject: [PATCH 03/15] - Adding WaltDisney and Logitech in pages which uses
 pagePiling.js

---
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index 199b6b6..5facfc6 100644
--- a/README.md
+++ b/README.md
@@ -310,8 +310,12 @@ Example:
 If you want your page to be listed here. Please <a href="mailto:alvaro@alvarotrigo.com">contact me</a> with the URL.
 
 [![Facebook](http://wallpapers-for-ipad.com/fullpage/imgs3/logos/facebook-pagepiling.gif)](http://www.facebookgroups.com/)
+[![WaltDisney](http://wallpapers-for-ipad.com/fullpage/imgs3/logos/waltDisney.gif)](http://waltdisney.org/galleries)
+[![Logitech](http://wallpapers-for-ipad.com/fullpage/imgs3/logos/logitech.gif)](http://www.logitech.com/en-gb)
 
 - http://www.facebookgroups.com/
+- http://waltdisney.org/galleries
+- http://www.logitech.com/en-gb
 - http://www.adigoodrich.com/
 - https://number26.de/
 - http://fngeats.com/

From 22ea76ea47c305138b08d7ae0c9ffb1d30f4d7cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro?= <atrigol@gmail.com>
Date: Fri, 26 Aug 2016 12:33:01 +0100
Subject: [PATCH 04/15]

---
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index 5facfc6..9a03569 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,10 @@ It works with browsers with CSS3 support and with the ones which don't have it,
 
 It is also designed to work on touch devices such as mobile phones or tablets.
 
+[![Browserstack](http://wallpapers-for-ipad.com/fullpage/imgs3/logos/browserstack2.png)](http://www.browserstack.com/)
+
+Special thanks to [Browserstack](http://www.browserstack.com/) for supporting pagePiling.js.
+
 ## Usage
 As you can see in the example files, you will need to include the JavaScript file `jquery.pagepiling.js` (or the minified version `jquery.pagepiling.min.js`) and the css file `jquery.pagepiling.css` of the plugin, as well as [jQuery](http://jquery.com/). Optionally, you can add the [jQuery UI library](http://jqueryui.com/) in case you want to use other easing effects apart from the ones included in the jQuery library which are the `linear` or `swing` effects.
 

From ee55946ee92019ee01677aabc107670646b9be70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro?= <atrigol@gmail.com>
Date: Wed, 18 Jan 2017 12:30:35 +0000
Subject: [PATCH 05/15] - Updating version number to create new release

---
 dist/jquery.pagepiling.css         |  2 +-
 dist/jquery.pagepiling.js          | 76 ++++++++++++++++++++++++------
 dist/jquery.pagepiling.min.css     |  2 +-
 dist/jquery.pagepiling.min.css.map |  2 +-
 dist/jquery.pagepiling.min.js      |  4 +-
 dist/jquery.pagepiling.min.js.map  |  2 +-
 jquery.pagepiling.css              |  2 +-
 jquery.pagepiling.js               |  2 +-
 jquery.pagepiling.min.js           |  2 +-
 package.json                       |  2 +-
 10 files changed, 72 insertions(+), 24 deletions(-)

diff --git a/dist/jquery.pagepiling.css b/dist/jquery.pagepiling.css
index baf0594..46e5c21 100644
--- a/dist/jquery.pagepiling.css
+++ b/dist/jquery.pagepiling.css
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.js b/dist/jquery.pagepiling.js
index 6c1e109..3671112 100644
--- a/dist/jquery.pagepiling.js
+++ b/dist/jquery.pagepiling.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
@@ -16,6 +16,7 @@
         var lastAnimation = 0;
         var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
         var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;
+        var scrollings = [];
 
         //Defines the delay to take place before being able to scroll to the next section
         //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
@@ -558,30 +559,77 @@
          * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
          * http://www.sitepoint.com/html5-javascript-mouse-wheel/
          */
+        var prevTime = new Date().getTime();
+
         function MouseWheelHandler(e) {
-            if(!isMoving()){
-                // cross-browser wheel delta
-                e = window.event || e;
-                var delta = Math.max(-1, Math.min(1,
-                        (e.wheelDelta || -e.deltaY || -e.detail)));
+        	var curTime = new Date().getTime();
+
+        	// cross-browser wheel delta
+            e = e || window.event;
+            var value = e.wheelDelta || -e.deltaY || -e.detail;
+            var delta = Math.max(-1, Math.min(1, value));
+
+            var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';
+            var isScrollingVertically = (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX ) < Math.abs(e.deltaY) || !horizontalDetection);
+
+			//Limiting the array to 150 (lets not waste memory!)
+            if(scrollings.length > 149){
+                scrollings.shift();
+            }
+
+            //keeping record of the previous scrollings
+            scrollings.push(Math.abs(value));
+
+            //time difference between the last scroll and the current one
+            var timeDiff = curTime-prevTime;
+            prevTime = curTime;
+
+            //haven't they scrolled in a while?
+            //(enough to be consider a different scrolling action to scroll another section)
+            if(timeDiff > 200){
+                //emptying the array, we dont care about old scrollings for our averages
+                scrollings = [];
+            }
 
+            if(!isMoving()){
                 var activeSection = $('.pp-section.active');
                 var scrollable = isScrollable(activeSection);
 
-                //scrolling down?
-                if (delta < 0) {
-                    scrolling('down', scrollable);
+                var averageEnd = getAverage(scrollings, 10);
+                var averageMiddle = getAverage(scrollings, 70);
+                var isAccelerating = averageEnd >= averageMiddle;
 
-                //scrolling up?
-                }else {
-                    scrolling('up', scrollable);
-                }
+                if(isAccelerating && isScrollingVertically){
+	                //scrolling down?
+	                if (delta < 0) {
+	                    scrolling('down', scrollable);
 
+	                //scrolling up?
+	                }else if(delta>0){
+	                    scrolling('up', scrollable);
+	                }
+	            }
 
                 return false;
             }
          }
 
+        /**
+        * Gets the average of the last `number` elements of the given array.
+        */
+        function getAverage(elements, number){
+            var sum = 0;
+
+            //taking `number` elements from the end to make the average, if there are not enought, 1
+            var lastElements = elements.slice(Math.max(elements.length - number, 1));
+
+            for(var i = 0; i < lastElements.length; i++){
+                sum = sum + lastElements[i];
+            }
+
+            return Math.ceil(sum/number);
+        }
+
         /**
         * Determines the way of scrolling up or down:
         * by 'automatically' scrolling a section or by using the default and normal scrolling.
@@ -606,7 +654,7 @@
                     return true;
                 }
             }else{
-                // moved up/down
+                //moved up/down
                 scrollSection();
             }
         }
diff --git a/dist/jquery.pagepiling.min.css b/dist/jquery.pagepiling.min.css
index 1cf264b..6828693 100644
--- a/dist/jquery.pagepiling.min.css
+++ b/dist/jquery.pagepiling.min.css
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.min.css.map b/dist/jquery.pagepiling.min.css.map
index a9c004b..48efc5d 100644
--- a/dist/jquery.pagepiling.min.css.map
+++ b/dist/jquery.pagepiling.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAEV,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAoH,6BACpH,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourceRoot":"/source/","sourcesContent":["/*!\r\n * pagepiling.js 1.5.3\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}"]}
\ No newline at end of file
+{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAEV,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAoH,6BACpH,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourceRoot":"/source/","sourcesContent":["/*!\r\n * pagepiling.js 1.5.4\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}"]}
\ No newline at end of file
diff --git a/dist/jquery.pagepiling.min.js b/dist/jquery.pagepiling.min.js
index 3a7d024..f3a177f 100644
--- a/dist/jquery.pagepiling.min.js
+++ b/dist/jquery.pagepiling.min.js
@@ -1,10 +1,10 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
  *
  * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
-!function(n,e,t,o){"use strict";n.fn.pagepiling=function(i){function a(n){n.addClass("pp-table").wrapInner('<div class="pp-tableCell" style="height:100%" />')}function s(e){var t=n(".pp-section.active").index(".pp-section"),o=e.index(".pp-section");return t>o?"up":"down"}function c(e,t){var o={destination:e,animated:t,activeSection:n(".pp-section.active"),anchorLink:e.data("anchor"),sectionIndex:e.index(".pp-section"),toMove:e,yMovement:s(e),leavingSection:n(".pp-section.active").index(".pp-section")+1};if(!o.activeSection.is(e)){"undefined"==typeof o.animated&&(o.animated=!0),"undefined"!=typeof o.anchorLink&&v(o.anchorLink,o.sectionIndex),o.destination.addClass("active").siblings().removeClass("active"),o.sectionsToMove=p(o),"down"===o.yMovement?(o.translate3d=U(),o.scrolling="-100%",G.css3||o.sectionsToMove.each(function(e){e!=o.activeSection.index(".pp-section")&&n(this).css(u(o.scrolling))}),o.animateSection=o.activeSection):(o.translate3d="translate3d(0px, 0px, 0px)",o.scrolling="0",o.animateSection=e),n.isFunction(G.onLeave)&&G.onLeave.call(this,o.leavingSection,o.sectionIndex+1,o.yMovement),r(o),A(o.anchorLink),z(o.anchorLink,o.sectionIndex),W=o.anchorLink;var i=(new Date).getTime();F=i}}function r(e){G.css3?(w(e.animateSection,e.translate3d,e.animated),e.sectionsToMove.each(function(){w(n(this),e.translate3d,e.animated)}),setTimeout(function(){l(e)},G.scrollingSpeed)):(e.scrollOptions=u(e.scrolling),e.animated?e.animateSection.animate(e.scrollOptions,G.scrollingSpeed,G.easing,function(){d(e),l(e)}):(e.animateSection.css(u(e.scrolling)),setTimeout(function(){d(e),l(e)},400)))}function l(e){n.isFunction(G.afterLoad)&&G.afterLoad.call(this,e.anchorLink,e.sectionIndex+1)}function p(e){var t;return t="down"===e.yMovement?n(".pp-section").map(function(t){if(t<e.destination.index(".pp-section"))return n(this)}):n(".pp-section").map(function(t){if(t>e.destination.index(".pp-section"))return n(this)})}function d(e){"up"===e.yMovement&&e.sectionsToMove.each(function(t){n(this).css(u(e.scrolling))})}function u(n){return"vertical"===G.direction?{top:n}:{left:n}}function v(n,e){G.anchors.length?(location.hash=n,f(location.hash)):f(String(e))}function f(e){e=e.replace("#",""),n("body")[0].className=n("body")[0].className.replace(/\b\s?pp-viewing-[^\s]+\b/g,""),n("body").addClass("pp-viewing-"+e)}function h(){var o=t.location.hash.replace("#",""),i=o,a=n(e).find('.pp-section[data-anchor="'+i+'"]');a.length>0&&c(a,G.animateAnchor)}function m(){var n=(new Date).getTime();return n-F<V+G.scrollingSpeed}function g(){var o=t.location.hash.replace("#","").split("/"),i=o[0];if(i.length&&i&&i!==W){var a;a=isNaN(i)?n(e).find('[data-anchor="'+i+'"]'):n(".pp-section").eq(i-1),c(a)}}function S(n){return{"-webkit-transform":n,"-moz-transform":n,"-ms-transform":n,transform:n}}function w(n,e,t){n.toggleClass("pp-easing",t),n.css(S(e))}function y(e){if(!m()){e=t.event||e;var o=Math.max(-1,Math.min(1,e.wheelDelta||-e.deltaY||-e.detail)),i=n(".pp-section.active"),a=T(i);return o<0?x("down",a):x("up",a),!1}}function x(n,e){var t,o;if("down"==n?(t="bottom",o=X.moveSectionDown):(t="top",o=X.moveSectionUp),e.length>0){if(!b(t,e))return!0;o()}else o()}function b(n,e){return"top"===n?!e.scrollTop():"bottom"===n?e.scrollTop()+1+e.innerHeight()>=e[0].scrollHeight:void 0}function T(n){return n.filter(".pp-scrollable")}function C(){B.get(0).addEventListener?(B.get(0).removeEventListener("mousewheel",y,!1),B.get(0).removeEventListener("wheel",y,!1)):B.get(0).detachEvent("onmousewheel",y)}function M(){B.get(0).addEventListener?(B.get(0).addEventListener("mousewheel",y,!1),B.get(0).addEventListener("wheel",y,!1)):B.get(0).attachEvent("onmousewheel",y)}function k(){if(Q){var n=L();B.off("touchstart "+n.down).on("touchstart "+n.down,P),B.off("touchmove "+n.move).on("touchmove "+n.move,N)}}function E(){if(Q){var n=L();B.off("touchstart "+n.down),B.off("touchmove "+n.move)}}function L(){var n;return n=t.PointerEvent?{down:"pointerdown",move:"pointermove",up:"pointerup"}:{down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp"}}function D(n){var e=new Array;return e.y="undefined"!=typeof n.pageY&&(n.pageY||n.pageX)?n.pageY:n.touches[0].pageY,e.x="undefined"!=typeof n.pageX&&(n.pageY||n.pageX)?n.pageX:n.touches[0].pageX,e}function I(n){return"undefined"==typeof n.pointerType||"mouse"!=n.pointerType}function P(n){var e=n.originalEvent;if(I(e)){var t=D(e);R=t.y,j=t.x}}function N(e){var t=e.originalEvent;if(!Y(e.target)&&I(t)){var o=n(".pp-section.active"),i=T(o);if(i.length||e.preventDefault(),!m()){var a=D(t);H=a.y,K=a.x,"horizontal"===G.direction&&Math.abs(j-K)>Math.abs(R-H)?Math.abs(j-K)>B.width()/100*G.touchSensitivity&&(j>K?x("down",i):K>j&&x("up",i)):Math.abs(R-H)>B.height()/100*G.touchSensitivity&&(R>H?x("down",i):H>R&&x("up",i))}}}function Y(e,t){t=t||0;var o=n(e).parent();return!!(t<G.normalScrollElementTouchThreshold&&o.is(G.normalScrollElements))||t!=G.normalScrollElementTouchThreshold&&Y(o,++t)}function q(){n("body").append('<div id="pp-nav"><ul></ul></div>');var e=n("#pp-nav");e.css("color",G.navigation.textColor),e.addClass(G.navigation.position);for(var t=0;t<n(".pp-section").length;t++){var o="";if(G.anchors.length&&(o=G.anchors[t]),"undefined"!==G.navigation.tooltips){var i=G.navigation.tooltips[t];"undefined"==typeof i&&(i="")}e.find("ul").append('<li data-tooltip="'+i+'"><a href="#'+o+'"><span></span></a></li>')}e.find("span").css("border-color",G.navigation.bulletsColor)}function z(e,t){G.navigation&&(n("#pp-nav").find(".active").removeClass("active"),e?n("#pp-nav").find('a[href="#'+e+'"]').addClass("active"):n("#pp-nav").find("li").eq(t).find("a").addClass("active"))}function A(e){G.menu&&(n(G.menu).find(".active").removeClass("active"),n(G.menu).find('[data-menuanchor="'+e+'"]').addClass("active"))}function O(){var n,i=e.createElement("p"),a={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};e.body.insertBefore(i,null);for(var s in a)i.style[s]!==o&&(i.style[s]="translate3d(1px,1px,1px)",n=t.getComputedStyle(i).getPropertyValue(a[s]));return e.body.removeChild(i),n!==o&&n.length>0&&"none"!==n}function U(){return"vertical"!==G.direction?"translate3d(-100%, 0px, 0px)":"translate3d(0px, -100%, 0px)"}var W,X=n.fn.pagepiling,B=n(this),F=0,Q="ontouchstart"in t||navigator.msMaxTouchPoints>0||navigator.maxTouchPoints,R=0,j=0,H=0,K=0,V=600,G=n.extend(!0,{direction:"vertical",menu:null,verticalCentered:!0,sectionsColor:[],anchors:[],scrollingSpeed:700,easing:"easeInQuart",loopBottom:!1,loopTop:!1,css3:!0,navigation:{textColor:"#000",bulletsColor:"#000",position:"right",tooltips:[]},normalScrollElements:null,normalScrollElementTouchThreshold:5,touchSensitivity:5,keyboardScrolling:!0,sectionSelector:".section",animateAnchor:!1,afterLoad:null,onLeave:null,afterRender:null},i);n.extend(n.easing,{easeInQuart:function(n,e,t,o,i){return o*(e/=i)*e*e*e+t}}),X.setScrollingSpeed=function(n){G.scrollingSpeed=n},X.setMouseWheelScrolling=function(n){n?M():C()},X.setAllowScrolling=function(n){n?(X.setMouseWheelScrolling(!0),k()):(X.setMouseWheelScrolling(!1),E())},X.setKeyboardScrolling=function(n){G.keyboardScrolling=n},X.moveSectionUp=function(){var e=n(".pp-section.active").prev(".pp-section");!e.length&&G.loopTop&&(e=n(".pp-section").last()),e.length&&c(e)},X.moveSectionDown=function(){var e=n(".pp-section.active").next(".pp-section");!e.length&&G.loopBottom&&(e=n(".pp-section").first()),e.length&&c(e)},X.moveTo=function(t){var o="";o=isNaN(t)?n(e).find('[data-anchor="'+t+'"]'):n(".pp-section").eq(t-1),o.length>0&&c(o)},n(G.sectionSelector).each(function(){n(this).addClass("pp-section")}),G.css3&&(G.css3=O()),n(B).css({overflow:"hidden","-ms-touch-action":"none","touch-action":"none"}),X.setAllowScrolling(!0),n.isEmptyObject(G.navigation)||q();var J=n(".pp-section").length;n(".pp-section").each(function(e){n(this).data("data-index",e),n(this).css("z-index",J),e||0!==n(".pp-section.active").length||n(this).addClass("active"),"undefined"!=typeof G.anchors[e]&&n(this).attr("data-anchor",G.anchors[e]),"undefined"!=typeof G.sectionsColor[e]&&n(this).css("background-color",G.sectionsColor[e]),G.verticalCentered&&!n(this).hasClass("pp-scrollable")&&a(n(this)),J-=1}).promise().done(function(){G.navigation&&(n("#pp-nav").css("margin-top","-"+n("#pp-nav").height()/2+"px"),n("#pp-nav").find("li").eq(n(".pp-section.active").index(".pp-section")).find("a").addClass("active")),n(t).on("load",function(){h()}),n.isFunction(G.afterRender)&&G.afterRender.call(this)}),n(t).on("hashchange",g),n(e).keydown(function(e){if(G.keyboardScrolling&&!m())switch(e.which){case 38:case 33:X.moveSectionUp();break;case 40:case 34:X.moveSectionDown();break;case 36:X.moveTo(1);break;case 35:X.moveTo(n(".pp-section").length);break;case 37:X.moveSectionUp();break;case 39:X.moveSectionDown();break;default:return}}),G.normalScrollElements&&(n(e).on("mouseenter",G.normalScrollElements,function(){X.setMouseWheelScrolling(!1)}),n(e).on("mouseleave",G.normalScrollElements,function(){X.setMouseWheelScrolling(!0)})),n(e).on("click touchstart","#pp-nav a",function(e){e.preventDefault();var t=n(this).parent().index();c(n(".pp-section").eq(t))}),n(e).on({mouseenter:function(){var e=n(this).data("tooltip");n('<div class="pp-tooltip '+G.navigation.position+'">'+e+"</div>").hide().appendTo(n(this)).fadeIn(200)},mouseleave:function(){n(this).find(".pp-tooltip").fadeOut(200,function(){n(this).remove()})}},"#pp-nav li")}}(jQuery,document,window);
+!function(e,n,t,o){"use strict";e.fn.pagepiling=function(i){function a(e){e.addClass("pp-table").wrapInner('<div class="pp-tableCell" style="height:100%" />')}function s(n){var t=e(".pp-section.active").index(".pp-section"),o=n.index(".pp-section");return t>o?"up":"down"}function c(n,t){var o={destination:n,animated:t,activeSection:e(".pp-section.active"),anchorLink:n.data("anchor"),sectionIndex:n.index(".pp-section"),toMove:n,yMovement:s(n),leavingSection:e(".pp-section.active").index(".pp-section")+1};if(!o.activeSection.is(n)){"undefined"==typeof o.animated&&(o.animated=!0),"undefined"!=typeof o.anchorLink&&v(o.anchorLink,o.sectionIndex),o.destination.addClass("active").siblings().removeClass("active"),o.sectionsToMove=p(o),"down"===o.yMovement?(o.translate3d=U(),o.scrolling="-100%",Z.css3||o.sectionsToMove.each(function(n){n!=o.activeSection.index(".pp-section")&&e(this).css(u(o.scrolling))}),o.animateSection=o.activeSection):(o.translate3d="translate3d(0px, 0px, 0px)",o.scrolling="0",o.animateSection=n),e.isFunction(Z.onLeave)&&Z.onLeave.call(this,o.leavingSection,o.sectionIndex+1,o.yMovement),r(o),A(o.anchorLink),z(o.anchorLink,o.sectionIndex),W=o.anchorLink;var i=(new Date).getTime();Q=i}}function r(n){Z.css3?(w(n.animateSection,n.translate3d,n.animated),n.sectionsToMove.each(function(){w(e(this),n.translate3d,n.animated)}),setTimeout(function(){l(n)},Z.scrollingSpeed)):(n.scrollOptions=u(n.scrolling),n.animated?n.animateSection.animate(n.scrollOptions,Z.scrollingSpeed,Z.easing,function(){d(n),l(n)}):(n.animateSection.css(u(n.scrolling)),setTimeout(function(){d(n),l(n)},400)))}function l(n){e.isFunction(Z.afterLoad)&&Z.afterLoad.call(this,n.anchorLink,n.sectionIndex+1)}function p(n){var t;return t="down"===n.yMovement?e(".pp-section").map(function(t){if(t<n.destination.index(".pp-section"))return e(this)}):e(".pp-section").map(function(t){if(t>n.destination.index(".pp-section"))return e(this)})}function d(n){"up"===n.yMovement&&n.sectionsToMove.each(function(t){e(this).css(u(n.scrolling))})}function u(e){return"vertical"===Z.direction?{top:e}:{left:e}}function v(e,n){Z.anchors.length?(location.hash=e,f(location.hash)):f(String(n))}function f(n){n=n.replace("#",""),e("body")[0].className=e("body")[0].className.replace(/\b\s?pp-viewing-[^\s]+\b/g,""),e("body").addClass("pp-viewing-"+n)}function h(){var o=t.location.hash.replace("#",""),i=o,a=e(n).find('.pp-section[data-anchor="'+i+'"]');a.length>0&&c(a,Z.animateAnchor)}function m(){var e=(new Date).getTime();return e-Q<J+Z.scrollingSpeed}function g(){var o=t.location.hash.replace("#","").split("/"),i=o[0];if(i.length&&i&&i!==W){var a;a=isNaN(i)?e(n).find('[data-anchor="'+i+'"]'):e(".pp-section").eq(i-1),c(a)}}function S(e){return{"-webkit-transform":e,"-moz-transform":e,"-ms-transform":e,transform:e}}function w(e,n,t){e.toggleClass("pp-easing",t),e.css(S(n))}function b(n){var o=(new Date).getTime();n=n||t.event;var i=n.wheelDelta||-n.deltaY||-n.detail,a=Math.max(-1,Math.min(1,i)),s="undefined"!=typeof n.wheelDeltaX||"undefined"!=typeof n.deltaX,c=Math.abs(n.wheelDeltaX)<Math.abs(n.wheelDelta)||Math.abs(n.deltaX)<Math.abs(n.deltaY)||!s;G.length>149&&G.shift(),G.push(Math.abs(i));var r=o-_;if(_=o,r>200&&(G=[]),!m()){var l=e(".pp-section.active"),p=T(l),d=y(G,10),u=y(G,70),v=d>=u;return v&&c&&(a<0?x("down",p):a>0&&x("up",p)),!1}}function y(e,n){for(var t=0,o=e.slice(Math.max(e.length-n,1)),i=0;i<o.length;i++)t+=o[i];return Math.ceil(t/n)}function x(e,n){var t,o;if("down"==e?(t="bottom",o=B.moveSectionDown):(t="top",o=B.moveSectionUp),n.length>0){if(!M(t,n))return!0;o()}else o()}function M(e,n){return"top"===e?!n.scrollTop():"bottom"===e?n.scrollTop()+1+n.innerHeight()>=n[0].scrollHeight:void 0}function T(e){return e.filter(".pp-scrollable")}function C(){F.get(0).addEventListener?(F.get(0).removeEventListener("mousewheel",b,!1),F.get(0).removeEventListener("wheel",b,!1)):F.get(0).detachEvent("onmousewheel",b)}function k(){F.get(0).addEventListener?(F.get(0).addEventListener("mousewheel",b,!1),F.get(0).addEventListener("wheel",b,!1)):F.get(0).attachEvent("onmousewheel",b)}function E(){if(R){var e=D();F.off("touchstart "+e.down).on("touchstart "+e.down,P),F.off("touchmove "+e.move).on("touchmove "+e.move,Y)}}function L(){if(R){var e=D();F.off("touchstart "+e.down),F.off("touchmove "+e.move)}}function D(){var e;return e=t.PointerEvent?{down:"pointerdown",move:"pointermove",up:"pointerup"}:{down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp"}}function I(e){var n=new Array;return n.y="undefined"!=typeof e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,n.x="undefined"!=typeof e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,n}function X(e){return"undefined"==typeof e.pointerType||"mouse"!=e.pointerType}function P(e){var n=e.originalEvent;if(X(n)){var t=I(n);j=t.y,H=t.x}}function Y(n){var t=n.originalEvent;if(!N(n.target)&&X(t)){var o=e(".pp-section.active"),i=T(o);if(i.length||n.preventDefault(),!m()){var a=I(t);K=a.y,V=a.x,"horizontal"===Z.direction&&Math.abs(H-V)>Math.abs(j-K)?Math.abs(H-V)>F.width()/100*Z.touchSensitivity&&(H>V?x("down",i):V>H&&x("up",i)):Math.abs(j-K)>F.height()/100*Z.touchSensitivity&&(j>K?x("down",i):K>j&&x("up",i))}}}function N(n,t){t=t||0;var o=e(n).parent();return!!(t<Z.normalScrollElementTouchThreshold&&o.is(Z.normalScrollElements))||t!=Z.normalScrollElementTouchThreshold&&N(o,++t)}function q(){e("body").append('<div id="pp-nav"><ul></ul></div>');var n=e("#pp-nav");n.css("color",Z.navigation.textColor),n.addClass(Z.navigation.position);for(var t=0;t<e(".pp-section").length;t++){var o="";if(Z.anchors.length&&(o=Z.anchors[t]),"undefined"!==Z.navigation.tooltips){var i=Z.navigation.tooltips[t];"undefined"==typeof i&&(i="")}n.find("ul").append('<li data-tooltip="'+i+'"><a href="#'+o+'"><span></span></a></li>')}n.find("span").css("border-color",Z.navigation.bulletsColor)}function z(n,t){Z.navigation&&(e("#pp-nav").find(".active").removeClass("active"),n?e("#pp-nav").find('a[href="#'+n+'"]').addClass("active"):e("#pp-nav").find("li").eq(t).find("a").addClass("active"))}function A(n){Z.menu&&(e(Z.menu).find(".active").removeClass("active"),e(Z.menu).find('[data-menuanchor="'+n+'"]').addClass("active"))}function O(){var e,i=n.createElement("p"),a={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};n.body.insertBefore(i,null);for(var s in a)i.style[s]!==o&&(i.style[s]="translate3d(1px,1px,1px)",e=t.getComputedStyle(i).getPropertyValue(a[s]));return n.body.removeChild(i),e!==o&&e.length>0&&"none"!==e}function U(){return"vertical"!==Z.direction?"translate3d(-100%, 0px, 0px)":"translate3d(0px, -100%, 0px)"}var W,B=e.fn.pagepiling,F=e(this),Q=0,R="ontouchstart"in t||navigator.msMaxTouchPoints>0||navigator.maxTouchPoints,j=0,H=0,K=0,V=0,G=[],J=600,Z=e.extend(!0,{direction:"vertical",menu:null,verticalCentered:!0,sectionsColor:[],anchors:[],scrollingSpeed:700,easing:"easeInQuart",loopBottom:!1,loopTop:!1,css3:!0,navigation:{textColor:"#000",bulletsColor:"#000",position:"right",tooltips:[]},normalScrollElements:null,normalScrollElementTouchThreshold:5,touchSensitivity:5,keyboardScrolling:!0,sectionSelector:".section",animateAnchor:!1,afterLoad:null,onLeave:null,afterRender:null},i);e.extend(e.easing,{easeInQuart:function(e,n,t,o,i){return o*(n/=i)*n*n*n+t}}),B.setScrollingSpeed=function(e){Z.scrollingSpeed=e},B.setMouseWheelScrolling=function(e){e?k():C()},B.setAllowScrolling=function(e){e?(B.setMouseWheelScrolling(!0),E()):(B.setMouseWheelScrolling(!1),L())},B.setKeyboardScrolling=function(e){Z.keyboardScrolling=e},B.moveSectionUp=function(){var n=e(".pp-section.active").prev(".pp-section");!n.length&&Z.loopTop&&(n=e(".pp-section").last()),n.length&&c(n)},B.moveSectionDown=function(){var n=e(".pp-section.active").next(".pp-section");!n.length&&Z.loopBottom&&(n=e(".pp-section").first()),n.length&&c(n)},B.moveTo=function(t){var o="";o=isNaN(t)?e(n).find('[data-anchor="'+t+'"]'):e(".pp-section").eq(t-1),o.length>0&&c(o)},e(Z.sectionSelector).each(function(){e(this).addClass("pp-section")}),Z.css3&&(Z.css3=O()),e(F).css({overflow:"hidden","-ms-touch-action":"none","touch-action":"none"}),B.setAllowScrolling(!0),e.isEmptyObject(Z.navigation)||q();var $=e(".pp-section").length;e(".pp-section").each(function(n){e(this).data("data-index",n),e(this).css("z-index",$),n||0!==e(".pp-section.active").length||e(this).addClass("active"),"undefined"!=typeof Z.anchors[n]&&e(this).attr("data-anchor",Z.anchors[n]),"undefined"!=typeof Z.sectionsColor[n]&&e(this).css("background-color",Z.sectionsColor[n]),Z.verticalCentered&&!e(this).hasClass("pp-scrollable")&&a(e(this)),$-=1}).promise().done(function(){Z.navigation&&(e("#pp-nav").css("margin-top","-"+e("#pp-nav").height()/2+"px"),e("#pp-nav").find("li").eq(e(".pp-section.active").index(".pp-section")).find("a").addClass("active")),e(t).on("load",function(){h()}),e.isFunction(Z.afterRender)&&Z.afterRender.call(this)}),e(t).on("hashchange",g),e(n).keydown(function(n){if(Z.keyboardScrolling&&!m())switch(n.which){case 38:case 33:B.moveSectionUp();break;case 40:case 34:B.moveSectionDown();break;case 36:B.moveTo(1);break;case 35:B.moveTo(e(".pp-section").length);break;case 37:B.moveSectionUp();break;case 39:B.moveSectionDown();break;default:return}}),Z.normalScrollElements&&(e(n).on("mouseenter",Z.normalScrollElements,function(){B.setMouseWheelScrolling(!1)}),e(n).on("mouseleave",Z.normalScrollElements,function(){B.setMouseWheelScrolling(!0)}));var _=(new Date).getTime();e(n).on("click touchstart","#pp-nav a",function(n){n.preventDefault();var t=e(this).parent().index();c(e(".pp-section").eq(t))}),e(n).on({mouseenter:function(){var n=e(this).data("tooltip");e('<div class="pp-tooltip '+Z.navigation.position+'">'+n+"</div>").hide().appendTo(e(this)).fadeIn(200)},mouseleave:function(){e(this).find(".pp-tooltip").fadeOut(200,function(){e(this).remove()})}},"#pp-nav li")}}(jQuery,document,window);
 //# sourceMappingURL=jquery.pagepiling.min.js.map
diff --git a/dist/jquery.pagepiling.min.js.map b/dist/jquery.pagepiling.min.js.map
index f86e46d..69880f6 100644
--- a/dist/jquery.pagepiling.min.js.map
+++ b/dist/jquery.pagepiling.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","event","delta","Math","max","min","wheelDelta","deltaY","detail","scrollable","isScrollable","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","abs","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.3\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        function MouseWheelHandler(e) {\r\n            if(!isMoving()){\r\n                // cross-browser wheel delta\r\n                e = window.event || e;\r\n                var delta = Math.max(-1, Math.min(1,\r\n                        (e.wheelDelta || -e.deltaY || -e.detail)));\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                //scrolling down?\r\n                if (delta < 0) {\r\n                    scrolling('down', scrollable);\r\n\r\n                //scrolling up?\r\n                }else {\r\n                    scrolling('up', scrollable);\r\n                }\r\n\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                // moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"],"sourceRoot":"/source/"}
\ No newline at end of file
+{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","curTime","event","wheelDelta","deltaY","detail","delta","Math","max","min","horizontalDetection","wheelDeltaX","deltaX","isScrollingVertically","abs","scrollings","shift","push","timeDiff","prevTime","scrollable","isScrollable","averageEnd","getAverage","averageMiddle","isAccelerating","elements","number","sum","lastElements","slice","i","ceil","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.4\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n        var scrollings = [];\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        var prevTime = new Date().getTime();\r\n\r\n        function MouseWheelHandler(e) {\r\n        \tvar curTime = new Date().getTime();\r\n\r\n        \t// cross-browser wheel delta\r\n            e = e || window.event;\r\n            var value = e.wheelDelta || -e.deltaY || -e.detail;\r\n            var delta = Math.max(-1, Math.min(1, value));\r\n\r\n            var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\r\n            var isScrollingVertically = (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX ) < Math.abs(e.deltaY) || !horizontalDetection);\r\n\r\n\t\t\t//Limiting the array to 150 (lets not waste memory!)\r\n            if(scrollings.length > 149){\r\n                scrollings.shift();\r\n            }\r\n\r\n            //keeping record of the previous scrollings\r\n            scrollings.push(Math.abs(value));\r\n\r\n            //time difference between the last scroll and the current one\r\n            var timeDiff = curTime-prevTime;\r\n            prevTime = curTime;\r\n\r\n            //haven't they scrolled in a while?\r\n            //(enough to be consider a different scrolling action to scroll another section)\r\n            if(timeDiff > 200){\r\n                //emptying the array, we dont care about old scrollings for our averages\r\n                scrollings = [];\r\n            }\r\n\r\n            if(!isMoving()){\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                var averageEnd = getAverage(scrollings, 10);\r\n                var averageMiddle = getAverage(scrollings, 70);\r\n                var isAccelerating = averageEnd >= averageMiddle;\r\n\r\n                if(isAccelerating && isScrollingVertically){\r\n\t                //scrolling down?\r\n\t                if (delta < 0) {\r\n\t                    scrolling('down', scrollable);\r\n\r\n\t                //scrolling up?\r\n\t                }else if(delta>0){\r\n\t                    scrolling('up', scrollable);\r\n\t                }\r\n\t            }\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Gets the average of the last `number` elements of the given array.\r\n        */\r\n        function getAverage(elements, number){\r\n            var sum = 0;\r\n\r\n            //taking `number` elements from the end to make the average, if there are not enought, 1\r\n            var lastElements = elements.slice(Math.max(elements.length - number, 1));\r\n\r\n            for(var i = 0; i < lastElements.length; i++){\r\n                sum = sum + lastElements[i];\r\n            }\r\n\r\n            return Math.ceil(sum/number);\r\n        }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                //moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"],"sourceRoot":"/source/"}
\ No newline at end of file
diff --git a/jquery.pagepiling.css b/jquery.pagepiling.css
index baf0594..46e5c21 100644
--- a/jquery.pagepiling.css
+++ b/jquery.pagepiling.css
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/jquery.pagepiling.js b/jquery.pagepiling.js
index 48e74db..3671112 100644
--- a/jquery.pagepiling.js
+++ b/jquery.pagepiling.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/jquery.pagepiling.min.js b/jquery.pagepiling.min.js
index d961cc0..ea1253d 100644
--- a/jquery.pagepiling.min.js
+++ b/jquery.pagepiling.min.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.3
+ * pagepiling.js 1.5.4
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * MIT licensed
diff --git a/package.json b/package.json
index e04a824..59e8c65 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pagepiling.js",
-  "version": "1.5.3",
+  "version": "1.5.4",
   "description": "Create a scrolling pile of sections",
   "main": "jquery.pagepiling.js",
   "scripts": {

From eba789938d62ba1e783ca6a85c3100b0b7eb0e11 Mon Sep 17 00:00:00 2001
From: Claire Tsai <clairetsai818@gmail.com>
Date: Mon, 23 Jan 2017 22:28:03 +0800
Subject: [PATCH 06/15] Add CDNJS version badge in README.md

The badge will show the version on CDNJS, and it is added after the "including file" section.
---
 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 9a03569..c58de7d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 # pagePiling.js
-
+-
 ![preview](https://raw.github.com/alvarotrigo/pagePiling.js/master/examples/imgs/pagePiling-plugin.png)
 ![compatibility](https://raw.github.com/alvarotrigo/pagePiling.js/master/examples/imgs/compatible.gif)
 Pile your sections one over another and access them scrolling or by URL!
@@ -46,6 +46,7 @@ bower install pagepiling.js
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 <script type="text/javascript" src="jquery.pagepiling.js"></script>
 ```
+[![CDNJS](https://img.shields.io/cdnjs/v/pagepiling.svg)](https://cdnjs.com/libraries/pagePiling.js)
 
 ###Required HTML structure
 Each section will be defined with a `div` containing the `section` class.

From 405e44d20972f3a7d8efbcd5dfeada11d571712b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro?= <atrigol@gmail.com>
Date: Mon, 23 Jan 2017 15:28:39 +0000
Subject: [PATCH 07/15] - Improved CDN description #118

---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index c58de7d..be0371d 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,9 @@ bower install pagepiling.js
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 <script type="text/javascript" src="jquery.pagepiling.js"></script>
 ```
-[![CDNJS](https://img.shields.io/cdnjs/v/pagepiling.svg)](https://cdnjs.com/libraries/pagePiling.js)
+
+###Optional use of CDN
+If you prefer to use a CDN to load the needed files, pagePiling.js is in CDNJS: https://cdnjs.com/libraries/pagePiling.js
 
 ###Required HTML structure
 Each section will be defined with a `div` containing the `section` class.

From 8f86a1bf8e9ceb9d006dc2ca3a4d0b5928b22541 Mon Sep 17 00:00:00 2001
From: Santiago Castro <santi.1410@hotmail.com>
Date: Sun, 16 Apr 2017 22:38:51 -0300
Subject: [PATCH 08/15] Fix broken Markdown headings

---
 README.md | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index be0371d..9dec807 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ Terminal:
 bower install pagepiling.js
 ```
 
-###Including files:
+### Including files:
 ```html
 <link rel="stylesheet" type="text/css" href="jquery.pagepiling.css" />
 
@@ -47,10 +47,10 @@ bower install pagepiling.js
 <script type="text/javascript" src="jquery.pagepiling.js"></script>
 ```
 
-###Optional use of CDN
+### Optional use of CDN
 If you prefer to use a CDN to load the needed files, pagePiling.js is in CDNJS: https://cdnjs.com/libraries/pagePiling.js
 
-###Required HTML structure
+### Required HTML structure
 Each section will be defined with a `div` containing the `section` class.
 The active section by default will be the first section, which is taken as the home page.
 ```html
@@ -62,7 +62,7 @@ The active section by default will be the first section, which is taken as the h
 </div>
 ```
 
-###Initialization
+### Initialization
 All you need to do is call the plugin inside a `$(document).ready` function:
 
 ```javascript
@@ -239,7 +239,7 @@ $.fn.pagepiling.setScrollingSpeed(700);
 
 
 ## Callbacks
-###afterLoad (`anchorLink`, `index`)
+### afterLoad (`anchorLink`, `index`)
 Callback fired once the sections have been loaded, after the scrolling has ended.
 Parameters:
 
@@ -268,7 +268,7 @@ Example:
 	});
 ```
 
-###onLeave (`index`, `nextIndex`, `direction`)
+### onLeave (`index`, `nextIndex`, `direction`)
 This callback is fired once the user leaves a section, in the transition to the new section.
 
 Parameters:
@@ -295,7 +295,7 @@ Example:
 ```
 
 
-###afterRender()
+### afterRender()
 This callback is fired just after the structure of the page is generated. This is the callback you want to use to initialize other plugins or fire any code which requires the document to be ready (as this plugin modifies the DOM to create the resulting structure).
 
 Example:

From 2841d87eafb4b7d28ff64b88dc49221ff5f4277c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alvaro=20Trigo=20Lo=CC=81pez?= <atrigol@gmail.com>
Date: Wed, 7 Mar 2018 15:31:39 +0100
Subject: [PATCH 09/15] - Updating version number and dist files

---
 dist/jquery.pagepiling.css         | 2 +-
 dist/jquery.pagepiling.js          | 2 +-
 dist/jquery.pagepiling.min.css     | 6 +++---
 dist/jquery.pagepiling.min.css.map | 2 +-
 dist/jquery.pagepiling.min.js      | 2 +-
 dist/jquery.pagepiling.min.js.map  | 2 +-
 jquery.pagepiling.js               | 2 +-
 jquery.pagepiling.min.js           | 2 +-
 package.json                       | 2 +-
 9 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/dist/jquery.pagepiling.css b/dist/jquery.pagepiling.css
index 46e5c21..604df76 100644
--- a/dist/jquery.pagepiling.css
+++ b/dist/jquery.pagepiling.css
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.5
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.js b/dist/jquery.pagepiling.js
index 3671112..fc2c6e9 100644
--- a/dist/jquery.pagepiling.js
+++ b/dist/jquery.pagepiling.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.5
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.min.css b/dist/jquery.pagepiling.min.css
index 6828693..b5970a6 100644
--- a/dist/jquery.pagepiling.min.css
+++ b/dist/jquery.pagepiling.min.css
@@ -1,9 +1,9 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.5
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
  *
  * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
- */body,html{overflow:hidden;margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pp-section{height:100%;position:absolute;width:100%}.pp-easing{-webkit-transition:all 1s cubic-bezier(.55,.085,0,.99);-moz-transition:all 1s cubic-bezier(.55,.085,0,.99);-o-transition:all 1s cubic-bezier(.55,.085,0,.99);transition:all 1s cubic-bezier(.55,.085,0,.99);-webkit-transition-timing-function:cubic-bezier(.55,.085,0,.99);-moz-transition-timing-function:cubic-bezier(.55,.085,0,.99);-o-transition-timing-function:cubic-bezier(.55,.085,0,.99);transition-timing-function:cubic-bezier(.55,.085,0,.99)}#pp-nav{position:fixed;z-index:100;margin-top:-32px;top:50%;opacity:1}#pp-nav.right{right:17px}#pp-nav.left{left:17px}.pp-section.pp-table{display:table}.pp-tableCell{display:table-cell;vertical-align:middle;width:100%;height:100%}.pp-slidesNav{position:absolute;z-index:4;left:50%;opacity:1}.pp-slidesNav.bottom{bottom:17px}.pp-slidesNav.top{top:17px}#pp-nav ul,.pp-slidesNav ul{margin:0;padding:0}#pp-nav li,.pp-slidesNav li{display:block;width:14px;height:13px;margin:7px;position:relative}.pp-slidesNav li{display:inline-block}#pp-nav li a,.pp-slidesNav li a{display:block;position:relative;z-index:1;width:100%;height:100%;cursor:pointer;text-decoration:none}#pp-nav li .active span,.pp-slidesNav .active span{background:#333}#pp-nav span,.pp-slidesNav span{top:2px;left:2px;width:8px;height:8px;border:1px solid #000;background:rgba(0,0,0,0);border-radius:50%;position:absolute;z-index:1}.pp-tooltip{position:absolute;top:-2px;color:#fff;font-size:14px;font-family:arial,helvetica,sans-serif;white-space:nowrap;max-width:220px}.pp-tooltip.right{right:20px}.pp-tooltip.left{left:20px}.pp-scrollable{overflow-y:scroll;height:100%}
-/*# sourceMappingURL=jquery.pagepiling.min.css.map */
+ */body,html{overflow:hidden;margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pp-section{height:100%;position:absolute;width:100%}.pp-easing{-webkit-transition:all 1s cubic-bezier(.55,.085,0,.99);-moz-transition:all 1s cubic-bezier(.55,.085,0,.99);-o-transition:all 1s cubic-bezier(.55,.085,0,.99);transition:all 1s cubic-bezier(.55,.085,0,.99);-webkit-transition-timing-function:cubic-bezier(.55,.085,0,.99);-moz-transition-timing-function:cubic-bezier(.55,.085,0,.99);-o-transition-timing-function:cubic-bezier(.55,.085,0,.99);transition-timing-function:cubic-bezier(.55,.085,0,.99)}#pp-nav{position:fixed;z-index:100;margin-top:-32px;top:50%;opacity:1}#pp-nav.right{right:17px}#pp-nav.left{left:17px}.pp-section.pp-table{display:table}.pp-tableCell{display:table-cell;vertical-align:middle;width:100%;height:100%}.pp-slidesNav{position:absolute;z-index:4;left:50%;opacity:1}.pp-slidesNav.bottom{bottom:17px}.pp-slidesNav.top{top:17px}#pp-nav ul,.pp-slidesNav ul{margin:0;padding:0}#pp-nav li,.pp-slidesNav li{display:block;width:14px;height:13px;margin:7px;position:relative}.pp-slidesNav li{display:inline-block}#pp-nav li a,.pp-slidesNav li a{display:block;position:relative;z-index:1;width:100%;height:100%;cursor:pointer;text-decoration:none}#pp-nav li .active span,.pp-slidesNav .active span{background:#333}#pp-nav span,.pp-slidesNav span{top:2px;left:2px;width:8px;height:8px;border:1px solid #000;background:rgba(0,0,0,0);border-radius:50%;position:absolute;z-index:1}.pp-tooltip{position:absolute;top:-2px;color:#fff;font-size:14px;font-family:arial,helvetica,sans-serif;white-space:nowrap;max-width:220px}.pp-tooltip.right{right:20px}.pp-tooltip.left{left:20px}.pp-scrollable{overflow-y:scroll;height:100%}
+/*# sourceMappingURL=jquery.pagepiling.min.css.map */
diff --git a/dist/jquery.pagepiling.min.css.map b/dist/jquery.pagepiling.min.css.map
index 48efc5d..cb07682 100644
--- a/dist/jquery.pagepiling.min.css.map
+++ b/dist/jquery.pagepiling.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAEV,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAoH,6BACpH,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourceRoot":"/source/","sourcesContent":["/*!\r\n * pagepiling.js 1.5.4\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}"]}
\ No newline at end of file
+{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAEV,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAoH,6BACpH,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourceRoot":"/source/","sourcesContent":["/*!\r\n * pagepiling.js 1.5.5\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}"]}
\ No newline at end of file
diff --git a/dist/jquery.pagepiling.min.js b/dist/jquery.pagepiling.min.js
index f3a177f..53ff047 100644
--- a/dist/jquery.pagepiling.min.js
+++ b/dist/jquery.pagepiling.min.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.5
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.min.js.map b/dist/jquery.pagepiling.min.js.map
index 69880f6..3b6dc0a 100644
--- a/dist/jquery.pagepiling.min.js.map
+++ b/dist/jquery.pagepiling.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","curTime","event","wheelDelta","deltaY","detail","delta","Math","max","min","horizontalDetection","wheelDeltaX","deltaX","isScrollingVertically","abs","scrollings","shift","push","timeDiff","prevTime","scrollable","isScrollable","averageEnd","getAverage","averageMiddle","isAccelerating","elements","number","sum","lastElements","slice","i","ceil","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.4\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n        var scrollings = [];\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        var prevTime = new Date().getTime();\r\n\r\n        function MouseWheelHandler(e) {\r\n        \tvar curTime = new Date().getTime();\r\n\r\n        \t// cross-browser wheel delta\r\n            e = e || window.event;\r\n            var value = e.wheelDelta || -e.deltaY || -e.detail;\r\n            var delta = Math.max(-1, Math.min(1, value));\r\n\r\n            var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\r\n            var isScrollingVertically = (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX ) < Math.abs(e.deltaY) || !horizontalDetection);\r\n\r\n\t\t\t//Limiting the array to 150 (lets not waste memory!)\r\n            if(scrollings.length > 149){\r\n                scrollings.shift();\r\n            }\r\n\r\n            //keeping record of the previous scrollings\r\n            scrollings.push(Math.abs(value));\r\n\r\n            //time difference between the last scroll and the current one\r\n            var timeDiff = curTime-prevTime;\r\n            prevTime = curTime;\r\n\r\n            //haven't they scrolled in a while?\r\n            //(enough to be consider a different scrolling action to scroll another section)\r\n            if(timeDiff > 200){\r\n                //emptying the array, we dont care about old scrollings for our averages\r\n                scrollings = [];\r\n            }\r\n\r\n            if(!isMoving()){\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                var averageEnd = getAverage(scrollings, 10);\r\n                var averageMiddle = getAverage(scrollings, 70);\r\n                var isAccelerating = averageEnd >= averageMiddle;\r\n\r\n                if(isAccelerating && isScrollingVertically){\r\n\t                //scrolling down?\r\n\t                if (delta < 0) {\r\n\t                    scrolling('down', scrollable);\r\n\r\n\t                //scrolling up?\r\n\t                }else if(delta>0){\r\n\t                    scrolling('up', scrollable);\r\n\t                }\r\n\t            }\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Gets the average of the last `number` elements of the given array.\r\n        */\r\n        function getAverage(elements, number){\r\n            var sum = 0;\r\n\r\n            //taking `number` elements from the end to make the average, if there are not enought, 1\r\n            var lastElements = elements.slice(Math.max(elements.length - number, 1));\r\n\r\n            for(var i = 0; i < lastElements.length; i++){\r\n                sum = sum + lastElements[i];\r\n            }\r\n\r\n            return Math.ceil(sum/number);\r\n        }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                //moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"],"sourceRoot":"/source/"}
\ No newline at end of file
+{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","curTime","event","wheelDelta","deltaY","detail","delta","Math","max","min","horizontalDetection","wheelDeltaX","deltaX","isScrollingVertically","abs","scrollings","shift","push","timeDiff","prevTime","scrollable","isScrollable","averageEnd","getAverage","averageMiddle","isAccelerating","elements","number","sum","lastElements","slice","i","ceil","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.5\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n        var scrollings = [];\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        var prevTime = new Date().getTime();\r\n\r\n        function MouseWheelHandler(e) {\r\n        \tvar curTime = new Date().getTime();\r\n\r\n        \t// cross-browser wheel delta\r\n            e = e || window.event;\r\n            var value = e.wheelDelta || -e.deltaY || -e.detail;\r\n            var delta = Math.max(-1, Math.min(1, value));\r\n\r\n            var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\r\n            var isScrollingVertically = (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX ) < Math.abs(e.deltaY) || !horizontalDetection);\r\n\r\n\t\t\t//Limiting the array to 150 (lets not waste memory!)\r\n            if(scrollings.length > 149){\r\n                scrollings.shift();\r\n            }\r\n\r\n            //keeping record of the previous scrollings\r\n            scrollings.push(Math.abs(value));\r\n\r\n            //time difference between the last scroll and the current one\r\n            var timeDiff = curTime-prevTime;\r\n            prevTime = curTime;\r\n\r\n            //haven't they scrolled in a while?\r\n            //(enough to be consider a different scrolling action to scroll another section)\r\n            if(timeDiff > 200){\r\n                //emptying the array, we dont care about old scrollings for our averages\r\n                scrollings = [];\r\n            }\r\n\r\n            if(!isMoving()){\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                var averageEnd = getAverage(scrollings, 10);\r\n                var averageMiddle = getAverage(scrollings, 70);\r\n                var isAccelerating = averageEnd >= averageMiddle;\r\n\r\n                if(isAccelerating && isScrollingVertically){\r\n\t                //scrolling down?\r\n\t                if (delta < 0) {\r\n\t                    scrolling('down', scrollable);\r\n\r\n\t                //scrolling up?\r\n\t                }else if(delta>0){\r\n\t                    scrolling('up', scrollable);\r\n\t                }\r\n\t            }\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Gets the average of the last `number` elements of the given array.\r\n        */\r\n        function getAverage(elements, number){\r\n            var sum = 0;\r\n\r\n            //taking `number` elements from the end to make the average, if there are not enought, 1\r\n            var lastElements = elements.slice(Math.max(elements.length - number, 1));\r\n\r\n            for(var i = 0; i < lastElements.length; i++){\r\n                sum = sum + lastElements[i];\r\n            }\r\n\r\n            return Math.ceil(sum/number);\r\n        }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                //moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"],"sourceRoot":"/source/"}
\ No newline at end of file
diff --git a/jquery.pagepiling.js b/jquery.pagepiling.js
index 3671112..fc2c6e9 100644
--- a/jquery.pagepiling.js
+++ b/jquery.pagepiling.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.5
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/jquery.pagepiling.min.js b/jquery.pagepiling.min.js
index ea1253d..b5f037a 100644
--- a/jquery.pagepiling.min.js
+++ b/jquery.pagepiling.min.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.5
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * MIT licensed
diff --git a/package.json b/package.json
index 59e8c65..ed7e393 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pagepiling.js",
-  "version": "1.5.4",
+  "version": "1.5.5",
   "description": "Create a scrolling pile of sections",
   "main": "jquery.pagepiling.js",
   "scripts": {

From d5015dcd25f36f75d66eef69b3aa03f541ab5963 Mon Sep 17 00:00:00 2001
From: Vitaliy <mygfctm@gmail.com>
Date: Thu, 3 May 2018 12:42:11 +0300
Subject: [PATCH 10/15] fix Readme

---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 9dec807..5d00668 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 # pagePiling.js
--
+
 ![preview](https://raw.github.com/alvarotrigo/pagePiling.js/master/examples/imgs/pagePiling-plugin.png)
-![compatibility](https://raw.github.com/alvarotrigo/pagePiling.js/master/examples/imgs/compatible.gif)
+![compatibility](https://raw.github.com/alvarotrigo/pagePiling.js/master/examples/imgs/compatible.gif)\
 Pile your sections one over another and access them scrolling or by URL!
 
 - [Live demo](http://alvarotrigo.com/pagePiling/)

From 9c83c1718a866fa79c0523e006840b33807ffd50 Mon Sep 17 00:00:00 2001
From: SakhirAtwi <saaelayaz@outlook.com>
Date: Tue, 7 Aug 2018 16:18:39 +0500
Subject: [PATCH 11/15] Fix the section1 vertical overflow issue.

---
 examples/videoBackground.html | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/examples/videoBackground.html b/examples/videoBackground.html
index 03753d7..c3f7a5c 100644
--- a/examples/videoBackground.html
+++ b/examples/videoBackground.html
@@ -77,6 +77,10 @@
 			color: #fff;
 		}
 
+		#section1{
+			overflow: hidden;
+		}
+
 
     </style>
 </head>

From e0e5f6fb6a9473aa83860505a76254ae41daed63 Mon Sep 17 00:00:00 2001
From: Nahshal El Nazier <nahshalxl@gmail.com>
Date: Thu, 24 Jan 2019 15:52:30 +0400
Subject: [PATCH 12/15] Fixed flickering on firefox

---
 jquery.pagepiling.css | 1 +
 1 file changed, 1 insertion(+)

diff --git a/jquery.pagepiling.css b/jquery.pagepiling.css
index 46e5c21..daf6a82 100644
--- a/jquery.pagepiling.css
+++ b/jquery.pagepiling.css
@@ -18,6 +18,7 @@ html, body {
     height:100%;
     position:absolute;
     width:100%;
+    backface-visibility: hidden; // fixes flickering in firefox
 }
 .pp-easing {
     -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);

From a8b1d8b4837a5e692a27b815aaac5ef66cf259d0 Mon Sep 17 00:00:00 2001
From: Nahshal El Nazier <nahshalxl@gmail.com>
Date: Mon, 28 Jan 2019 21:25:29 +0400
Subject: [PATCH 13/15] Fixed flickering in firefox (updated comment)

---
 jquery.pagepiling.css | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/jquery.pagepiling.css b/jquery.pagepiling.css
index daf6a82..b989e34 100644
--- a/jquery.pagepiling.css
+++ b/jquery.pagepiling.css
@@ -18,7 +18,9 @@ html, body {
     height:100%;
     position:absolute;
     width:100%;
-    backface-visibility: hidden; // fixes flickering in firefox
+    
+    /* fixes flickering in firefox*/
+    backface-visibility: hidden; 
 }
 .pp-easing {
     -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);
@@ -126,4 +128,4 @@ html, body {
 .pp-scrollable{
     overflow-y: scroll;
     height: 100%;
-}
\ No newline at end of file
+}

From e11d9cba2eea0e3e9c6709fa61c45905669200fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alvaro=20Trigo=20Lo=CC=81pez?= <atrigol@gmail.com>
Date: Tue, 29 Jan 2019 11:18:19 +0100
Subject: [PATCH 14/15] Version 1.5.6

- Fixed bug: Firefox flicker #168 #167
- Documentation: added version number
- Updated version and dist files
---
 README.md                          |    2 +
 dist/jquery.pagepiling.css         |    7 +-
 dist/jquery.pagepiling.js          |    2 +-
 dist/jquery.pagepiling.min.css     |    4 +-
 dist/jquery.pagepiling.min.css.map |    2 +-
 dist/jquery.pagepiling.min.js      |    2 +-
 dist/jquery.pagepiling.min.js.map  |    2 +-
 gulpfile.js                        |    1 -
 jquery.pagepiling.css              |    2 +-
 jquery.pagepiling.js               |    2 +-
 jquery.pagepiling.min.js           |   26 +-
 package-lock.json                  | 2650 ++++++++++++++++++++++++++++
 package.json                       |    6 +-
 13 files changed, 2672 insertions(+), 36 deletions(-)
 create mode 100644 package-lock.json

diff --git a/README.md b/README.md
index 5d00668..8b007e5 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@
 ![compatibility](https://raw.github.com/alvarotrigo/pagePiling.js/master/examples/imgs/compatible.gif)\
 Pile your sections one over another and access them scrolling or by URL!
 
+![pagePiling.js version](http://img.shields.io/badge/fullPage.js-v1.5.6-brightgreen.svg)
+
 - [Live demo](http://alvarotrigo.com/pagePiling/)
 - [Creating hugeinc.com website with pagePiling.js](http://www.onextrapixel.com/2015/04/09/how-to-create-a-beautiful-fullscreen-single-scrolling-page-like-huge-inc/)
 - [Who is using it](https://github.com/alvarotrigo/pagePiling.js#who-is-using-pagepilingjs)
diff --git a/dist/jquery.pagepiling.css b/dist/jquery.pagepiling.css
index 604df76..a9dd19e 100644
--- a/dist/jquery.pagepiling.css
+++ b/dist/jquery.pagepiling.css
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.5
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
@@ -18,6 +18,9 @@ html, body {
     height:100%;
     position:absolute;
     width:100%;
+    
+    /* fixes flickering in firefox*/
+    backface-visibility: hidden; 
 }
 .pp-easing {
     -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);
@@ -125,4 +128,4 @@ html, body {
 .pp-scrollable{
     overflow-y: scroll;
     height: 100%;
-}
\ No newline at end of file
+}
diff --git a/dist/jquery.pagepiling.js b/dist/jquery.pagepiling.js
index fc2c6e9..37908e2 100644
--- a/dist/jquery.pagepiling.js
+++ b/dist/jquery.pagepiling.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.5
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.min.css b/dist/jquery.pagepiling.min.css
index b5970a6..5a16b36 100644
--- a/dist/jquery.pagepiling.min.css
+++ b/dist/jquery.pagepiling.min.css
@@ -1,9 +1,9 @@
 /*!
- * pagepiling.js 1.5.5
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
  *
  * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
- */body,html{overflow:hidden;margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pp-section{height:100%;position:absolute;width:100%}.pp-easing{-webkit-transition:all 1s cubic-bezier(.55,.085,0,.99);-moz-transition:all 1s cubic-bezier(.55,.085,0,.99);-o-transition:all 1s cubic-bezier(.55,.085,0,.99);transition:all 1s cubic-bezier(.55,.085,0,.99);-webkit-transition-timing-function:cubic-bezier(.55,.085,0,.99);-moz-transition-timing-function:cubic-bezier(.55,.085,0,.99);-o-transition-timing-function:cubic-bezier(.55,.085,0,.99);transition-timing-function:cubic-bezier(.55,.085,0,.99)}#pp-nav{position:fixed;z-index:100;margin-top:-32px;top:50%;opacity:1}#pp-nav.right{right:17px}#pp-nav.left{left:17px}.pp-section.pp-table{display:table}.pp-tableCell{display:table-cell;vertical-align:middle;width:100%;height:100%}.pp-slidesNav{position:absolute;z-index:4;left:50%;opacity:1}.pp-slidesNav.bottom{bottom:17px}.pp-slidesNav.top{top:17px}#pp-nav ul,.pp-slidesNav ul{margin:0;padding:0}#pp-nav li,.pp-slidesNav li{display:block;width:14px;height:13px;margin:7px;position:relative}.pp-slidesNav li{display:inline-block}#pp-nav li a,.pp-slidesNav li a{display:block;position:relative;z-index:1;width:100%;height:100%;cursor:pointer;text-decoration:none}#pp-nav li .active span,.pp-slidesNav .active span{background:#333}#pp-nav span,.pp-slidesNav span{top:2px;left:2px;width:8px;height:8px;border:1px solid #000;background:rgba(0,0,0,0);border-radius:50%;position:absolute;z-index:1}.pp-tooltip{position:absolute;top:-2px;color:#fff;font-size:14px;font-family:arial,helvetica,sans-serif;white-space:nowrap;max-width:220px}.pp-tooltip.right{right:20px}.pp-tooltip.left{left:20px}.pp-scrollable{overflow-y:scroll;height:100%}
+ */body,html{overflow:hidden;margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pp-section{height:100%;position:absolute;width:100%;backface-visibility:hidden}.pp-easing{-webkit-transition:all 1s cubic-bezier(.55,.085,0,.99);-moz-transition:all 1s cubic-bezier(.55,.085,0,.99);-o-transition:all 1s cubic-bezier(.55,.085,0,.99);transition:all 1s cubic-bezier(.55,.085,0,.99);-webkit-transition-timing-function:cubic-bezier(.55,.085,0,.99);-moz-transition-timing-function:cubic-bezier(.55,.085,0,.99);-o-transition-timing-function:cubic-bezier(.55,.085,0,.99);transition-timing-function:cubic-bezier(.55,.085,0,.99)}#pp-nav{position:fixed;z-index:100;margin-top:-32px;top:50%;opacity:1}#pp-nav.right{right:17px}#pp-nav.left{left:17px}.pp-section.pp-table{display:table}.pp-tableCell{display:table-cell;vertical-align:middle;width:100%;height:100%}.pp-slidesNav{position:absolute;z-index:4;left:50%;opacity:1}.pp-slidesNav.bottom{bottom:17px}.pp-slidesNav.top{top:17px}#pp-nav ul,.pp-slidesNav ul{margin:0;padding:0}#pp-nav li,.pp-slidesNav li{display:block;width:14px;height:13px;margin:7px;position:relative}.pp-slidesNav li{display:inline-block}#pp-nav li a,.pp-slidesNav li a{display:block;position:relative;z-index:1;width:100%;height:100%;cursor:pointer;text-decoration:none}#pp-nav li .active span,.pp-slidesNav .active span{background:#333}#pp-nav span,.pp-slidesNav span{top:2px;left:2px;width:8px;height:8px;border:1px solid #000;background:rgba(0,0,0,0);border-radius:50%;position:absolute;z-index:1}.pp-tooltip{position:absolute;top:-2px;color:#fff;font-size:14px;font-family:arial,helvetica,sans-serif;white-space:nowrap;max-width:220px}.pp-tooltip.right{right:20px}.pp-tooltip.left{left:20px}.pp-scrollable{overflow-y:scroll;height:100%}
 /*# sourceMappingURL=jquery.pagepiling.min.css.map */
diff --git a/dist/jquery.pagepiling.min.css.map b/dist/jquery.pagepiling.min.css.map
index cb07682..f78043a 100644
--- a/dist/jquery.pagepiling.min.css.map
+++ b/dist/jquery.pagepiling.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAEV,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAoH,6BACpH,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourceRoot":"/source/","sourcesContent":["/*!\r\n * pagepiling.js 1.5.5\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}"]}
\ No newline at end of file
+{"version":3,"sources":["jquery.pagepiling.css"],"names":[],"mappings":";;;;;;;AAQM,KAAN,KACI,SAAS,OACT,OAAO,EACP,QAAQ,EAGR,4BAAgG,cAEpG,YACI,OAAO,KACP,SAAS,SACT,MAAM,KAGN,oBAAyH,OAE7H,WACI,mBAAoB,IAAI,GAAO,6BAC/B,gBAAiB,IAAI,GAAO,6BAC5B,cAAe,IAAI,GAAO,6BAC1B,WAAY,IAAI,GAAO,6BAEvB,mCAAqJ,6BACrJ,gCAAiC,6BACjC,8BAA+B,6BAC/B,2BAA4B,6BAGhC,QACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,cACI,MAAO,KAEX,aACI,KAAM,KAEV,qBACI,QAAS,MAEb,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,cACI,SAAU,SACV,QAAS,EACT,KAAM,IACN,QAAS,EAEb,qBACI,OAAQ,KAEZ,kBACI,IAAK,KAET,WACA,iBACE,OAAQ,EACR,QAAS,EAEX,WACA,iBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,iBACI,QAAS,aAEb,aACA,mBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,wBACA,2BACI,WAAY,KAEhB,aACA,mBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,cAAe,IACf,SAAU,SACV,QAAS,EAEb,YACI,SAAU,SACV,IAAK,KACL,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,YAAa,OACb,UAAW,MAEf,kBACI,MAAO,KAEX,iBACI,KAAM,KAEV,eACI,WAAY,OACZ,OAAQ","file":"jquery.pagepiling.min.css","sourcesContent":["/*!\r\n * pagepiling.js 1.5.6\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    overflow:hidden;\r\n    margin:0;\r\n    padding:0;\r\n\r\n    /*Avoid flicker on slides transitions for mobile phones #336 */\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.pp-section {\r\n    height:100%;\r\n    position:absolute;\r\n    width:100%;\r\n    \r\n    /* fixes flickering in firefox*/\r\n    backface-visibility: hidden; \r\n}\r\n.pp-easing {\r\n    -webkit-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition: all 1000ms cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n    -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -moz-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    transition-timing-function: cubic-bezier(0.550, 0.085, 0.000, 0.990);\r\n    /* custom */\r\n}\r\n#pp-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#pp-nav.right {\r\n    right: 17px;\r\n}\r\n#pp-nav.left {\r\n    left: 17px;\r\n}\r\n.pp-section.pp-table{\r\n    display: table;\r\n}\r\n.pp-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.pp-slidesNav{\r\n    position: absolute;\r\n    z-index: 4;\r\n    left: 50%;\r\n    opacity: 1;\r\n}\r\n.pp-slidesNav.bottom {\r\n    bottom: 17px;\r\n}\r\n.pp-slidesNav.top {\r\n    top: 17px;\r\n}\r\n#pp-nav ul,\r\n.pp-slidesNav ul {\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#pp-nav li,\r\n.pp-slidesNav li {\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n.pp-slidesNav li {\r\n    display: inline-block;\r\n}\r\n#pp-nav li a,\r\n.pp-slidesNav li a {\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#pp-nav li .active span,\r\n.pp-slidesNav .active span {\r\n    background: #333;\r\n}\r\n#pp-nav span,\r\n.pp-slidesNav span {\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.pp-tooltip {\r\n    position: absolute;\r\n    top: -2px;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.pp-tooltip.right {\r\n    right: 20px;\r\n}\r\n.pp-tooltip.left {\r\n    left: 20px;\r\n}\r\n.pp-scrollable{\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n}\r\n"]}
\ No newline at end of file
diff --git a/dist/jquery.pagepiling.min.js b/dist/jquery.pagepiling.min.js
index 53ff047..56ebb65 100644
--- a/dist/jquery.pagepiling.min.js
+++ b/dist/jquery.pagepiling.min.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.5
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/dist/jquery.pagepiling.min.js.map b/dist/jquery.pagepiling.min.js.map
index 3b6dc0a..28714d5 100644
--- a/dist/jquery.pagepiling.min.js.map
+++ b/dist/jquery.pagepiling.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","curTime","event","wheelDelta","deltaY","detail","delta","Math","max","min","horizontalDetection","wheelDeltaX","deltaX","isScrollingVertically","abs","scrollings","shift","push","timeDiff","prevTime","scrollable","isScrollable","averageEnd","getAverage","averageMiddle","isAccelerating","elements","number","sum","lastElements","slice","i","ceil","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.5\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n        var scrollings = [];\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        var prevTime = new Date().getTime();\r\n\r\n        function MouseWheelHandler(e) {\r\n        \tvar curTime = new Date().getTime();\r\n\r\n        \t// cross-browser wheel delta\r\n            e = e || window.event;\r\n            var value = e.wheelDelta || -e.deltaY || -e.detail;\r\n            var delta = Math.max(-1, Math.min(1, value));\r\n\r\n            var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\r\n            var isScrollingVertically = (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX ) < Math.abs(e.deltaY) || !horizontalDetection);\r\n\r\n\t\t\t//Limiting the array to 150 (lets not waste memory!)\r\n            if(scrollings.length > 149){\r\n                scrollings.shift();\r\n            }\r\n\r\n            //keeping record of the previous scrollings\r\n            scrollings.push(Math.abs(value));\r\n\r\n            //time difference between the last scroll and the current one\r\n            var timeDiff = curTime-prevTime;\r\n            prevTime = curTime;\r\n\r\n            //haven't they scrolled in a while?\r\n            //(enough to be consider a different scrolling action to scroll another section)\r\n            if(timeDiff > 200){\r\n                //emptying the array, we dont care about old scrollings for our averages\r\n                scrollings = [];\r\n            }\r\n\r\n            if(!isMoving()){\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                var averageEnd = getAverage(scrollings, 10);\r\n                var averageMiddle = getAverage(scrollings, 70);\r\n                var isAccelerating = averageEnd >= averageMiddle;\r\n\r\n                if(isAccelerating && isScrollingVertically){\r\n\t                //scrolling down?\r\n\t                if (delta < 0) {\r\n\t                    scrolling('down', scrollable);\r\n\r\n\t                //scrolling up?\r\n\t                }else if(delta>0){\r\n\t                    scrolling('up', scrollable);\r\n\t                }\r\n\t            }\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Gets the average of the last `number` elements of the given array.\r\n        */\r\n        function getAverage(elements, number){\r\n            var sum = 0;\r\n\r\n            //taking `number` elements from the end to make the average, if there are not enought, 1\r\n            var lastElements = elements.slice(Math.max(elements.length - number, 1));\r\n\r\n            for(var i = 0; i < lastElements.length; i++){\r\n                sum = sum + lastElements[i];\r\n            }\r\n\r\n            return Math.ceil(sum/number);\r\n        }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                //moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"],"sourceRoot":"/source/"}
\ No newline at end of file
+{"version":3,"sources":["jquery.pagepiling.js"],"names":["$","document","window","undefined","fn","pagepiling","custom","addTableClass","element","addClass","wrapInner","getYmovement","destiny","fromIndex","index","toIndex","scrollPage","destination","animated","v","activeSection","anchorLink","data","sectionIndex","toMove","yMovement","leavingSection","is","setURLHash","siblings","removeClass","sectionsToMove","getSectionsToMove","translate3d","getTranslate3d","scrolling","options","css3","each","this","css","getScrollProp","animateSection","isFunction","onLeave","call","performMovement","activateMenuElement","activateNavDots","lastScrolledDestiny","timeNow","Date","getTime","lastAnimation","transformContainer","setTimeout","afterSectionLoads","scrollingSpeed","scrollOptions","animate","easing","readjustSections","afterLoad","sectionToMove","map","propertyValue","direction","top","left","anchors","length","location","hash","setBodyClass","String","text","replace","className","scrollToAnchor","value","sectionAnchor","section","find","animateAnchor","isMoving","scrollDelay","hashChangeHandler","split","isNaN","eq","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","toggleClass","MouseWheelHandler","e","curTime","event","wheelDelta","deltaY","detail","delta","Math","max","min","horizontalDetection","wheelDeltaX","deltaX","isScrollingVertically","abs","scrollings","shift","push","timeDiff","prevTime","scrollable","isScrollable","averageEnd","getAverage","averageMiddle","isAccelerating","elements","number","sum","lastElements","slice","i","ceil","type","check","scrollSection","PP","moveSectionDown","moveSectionUp","isScrolled","scrollTop","innerHeight","scrollHeight","filter","removeMouseWheelHandler","container","get","addEventListener","removeEventListener","detachEvent","addMouseWheelHandler","attachEvent","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","touchStartHandler","move","touchMoveHandler","removeTouchHandler","pointer","PointerEvent","up","getEventsPage","events","Array","y","pageY","pageX","touches","x","isReallyTouch","pointerType","originalEvent","touchEvents","touchStartY","touchStartX","checkParentForNormalScrollElement","target","preventDefault","touchEndY","touchEndX","width","touchSensitivity","height","el","hop","parent","normalScrollElementTouchThreshold","normalScrollElements","addVerticalNavigation","append","nav","navigation","textColor","position","cont","link","tooltips","tooltip","bulletsColor","name","menu","support3d","has3d","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","navigator","msMaxTouchPoints","extend","verticalCentered","sectionsColor","loopBottom","loopTop","keyboardScrolling","sectionSelector","afterRender","easeInQuart","b","c","d","setScrollingSpeed","setMouseWheelScrolling","setAllowScrolling","setKeyboardScrolling","prev","last","next","first","moveTo","overflow","-ms-touch-action","touch-action","isEmptyObject","zIndex","attr","hasClass","promise","done","keydown","which","mouseenter","hide","appendTo","fadeIn","mouseleave","fadeOut","remove","jQuery"],"mappings":"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","file":"jquery.pagepiling.min.js","sourcesContent":["/*!\r\n * pagepiling.js 1.5.6\r\n *\r\n * https://github.com/alvarotrigo/pagePiling.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function ($, document, window, undefined) {\r\n    'use strict';\r\n\r\n    $.fn.pagepiling = function (custom) {\r\n        var PP = $.fn.pagepiling;\r\n        var container = $(this);\r\n        var lastScrolledDestiny;\r\n        var lastAnimation = 0;\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n        var touchStartY = 0, touchStartX = 0, touchEndY = 0, touchEndX = 0;\r\n        var scrollings = [];\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        var options = $.extend(true, {\r\n            direction: 'vertical',\r\n            menu: null,\r\n            verticalCentered: true,\r\n            sectionsColor: [],\r\n            anchors: [],\r\n            scrollingSpeed: 700,\r\n            easing: 'easeInQuart',\r\n            loopBottom: false,\r\n            loopTop: false,\r\n            css3: true,\r\n            navigation: {\r\n                textColor: '#000',\r\n                bulletsColor: '#000',\r\n                position: 'right',\r\n                tooltips: []\r\n            },\r\n            normalScrollElements: null,\r\n            normalScrollElementTouchThreshold: 5,\r\n            touchSensitivity: 5,\r\n            keyboardScrolling: true,\r\n            sectionSelector: '.section',\r\n            animateAnchor: false,\r\n\r\n            //events\r\n            afterLoad: null,\r\n            onLeave: null,\r\n            afterRender: null\r\n        }, custom);\r\n\r\n\r\n        //easeInQuart animation included in the plugin\r\n        $.extend($.easing,{ easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }});\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        PP.setScrollingSpeed = function(value){\r\n           options.scrollingSpeed = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        PP.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\r\n        */\r\n        PP.setAllowScrolling = function (value){\r\n            if(value){\r\n                PP.setMouseWheelScrolling(true);\r\n                addTouchHandler();\r\n            }else{\r\n                PP.setMouseWheelScrolling(false);\r\n                removeTouchHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        PP.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Moves sectio up\r\n        */\r\n        PP.moveSectionUp = function () {\r\n            var prev = $('.pp-section.active').prev('.pp-section');\r\n\r\n            //looping to the bottom if there's no more sections above\r\n            if (!prev.length && options.loopTop) {\r\n                prev = $('.pp-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves sectio down\r\n        */\r\n        PP.moveSectionDown = function () {\r\n            var next = $('.pp-section.active').next('.pp-section');\r\n\r\n            //looping to the top if there's no more sections below\r\n            if(!next.length && options.loopBottom){\r\n                next = $('.pp-section').first();\r\n            }\r\n\r\n            if (next.length) {\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Moves the site to the given anchor or index\r\n        */\r\n        PP.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $(document).find('[data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.pp-section').eq( (section -1) );\r\n            }\r\n\r\n\r\n            if(destiny.length > 0){\r\n                scrollPage(destiny);\r\n            }\r\n        };\r\n\r\n        //adding internal class names to void problem with common ones\r\n        $(options.sectionSelector).each(function(){\r\n            $(this).addClass('pp-section');\r\n        });\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $(container).css({\r\n            'overflow' : 'hidden',\r\n            '-ms-touch-action': 'none',  /* Touch detection for Windows 8 */\r\n            'touch-action': 'none'       /* IE 11 on Windows Phone 8.1*/\r\n        });\r\n\r\n        //init\r\n        PP.setAllowScrolling(true);\r\n\r\n        //creating the navigation dots\r\n        if (!$.isEmptyObject(options.navigation) ) {\r\n            addVerticalNavigation();\r\n        }\r\n\r\n         var zIndex = $('.pp-section').length;\r\n\r\n        $('.pp-section').each(function (index) {\r\n            $(this).data('data-index', index);\r\n            $(this).css('z-index', zIndex);\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if (!index && $('.pp-section.active').length === 0) {\r\n                $(this).addClass('active');\r\n            }\r\n\r\n            if (typeof options.anchors[index] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[index]);\r\n            }\r\n\r\n            if (typeof options.sectionsColor[index] !== 'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[index]);\r\n            }\r\n\r\n            if(options.verticalCentered && !$(this).hasClass('pp-scrollable')){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            zIndex = zIndex - 1;\r\n        }).promise().done(function(){\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                $('#pp-nav').css('margin-top', '-' + ($('#pp-nav').height()/2) + 'px');\r\n                $('#pp-nav').find('li').eq($('.pp-section.active').index('.pp-section')).find('a').addClass('active');\r\n            }\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n        });\r\n\r\n        /**\r\n        * Enables vertical centering by wrapping the content and the use of table and table-cell\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('pp-table').wrapInner('<div class=\"pp-tableCell\" style=\"height:100%\" />');\r\n        }\r\n\r\n\r\n       /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.pp-section.active').index('.pp-section');\r\n            var toIndex = destiny.index('.pp-section');\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n        /**\r\n        * Scrolls the page to the given destination\r\n        */\r\n        function scrollPage(destination, animated) {\r\n            var v ={\r\n                destination: destination,\r\n                animated: animated,\r\n                activeSection: $('.pp-section.active'),\r\n                anchorLink: destination.data('anchor'),\r\n                sectionIndex: destination.index('.pp-section'),\r\n                toMove: destination,\r\n                yMovement: getYmovement(destination),\r\n                leavingSection: $('.pp-section.active').index('.pp-section') + 1\r\n            };\r\n\r\n            //quiting when activeSection is the target element\r\n            if(v.activeSection.is(destination)){ return; }\r\n\r\n            if(typeof v.animated === 'undefined'){\r\n                v.animated = true;\r\n            }\r\n\r\n            if(typeof v.anchorLink !== 'undefined'){\r\n                setURLHash(v.anchorLink, v.sectionIndex);\r\n            }\r\n\r\n            v.destination.addClass('active').siblings().removeClass('active');\r\n\r\n            v.sectionsToMove = getSectionsToMove(v);\r\n\r\n            //scrolling down (moving sections up making them disappear)\r\n            if (v.yMovement === 'down') {\r\n                v.translate3d = getTranslate3d();\r\n                v.scrolling = '-100%';\r\n\r\n                if(!options.css3){\r\n                    v.sectionsToMove.each(function(index){\r\n                        if(index != v.activeSection.index('.pp-section')){\r\n                            $(this).css(getScrollProp(v.scrolling));\r\n                        }\r\n                    });\r\n                }\r\n\r\n                v.animateSection = v.activeSection;\r\n            }\r\n\r\n            //scrolling up (moving section down to the viewport)\r\n            else {\r\n                v.translate3d = 'translate3d(0px, 0px, 0px)';\r\n                v.scrolling = '0';\r\n\r\n                v.animateSection = destination;\r\n            }\r\n\r\n            $.isFunction(options.onLeave) && options.onLeave.call(this, v.leavingSection, (v.sectionIndex + 1), v.yMovement);\r\n\r\n            performMovement(v);\r\n\r\n            activateMenuElement(v.anchorLink);\r\n            activateNavDots(v.anchorLink, v.sectionIndex);\r\n            lastScrolledDestiny = v.anchorLink;\r\n\r\n            var timeNow = new Date().getTime();\r\n            lastAnimation = timeNow;\r\n        }\r\n\r\n        /**\r\n        * Performs the movement (by CSS3 or by jQuery)\r\n        */\r\n        function performMovement(v){\r\n            if(options.css3){\r\n                transformContainer(v.animateSection, v.translate3d, v.animated);\r\n\r\n                v.sectionsToMove.each(function(){\r\n                    transformContainer($(this), v.translate3d, v.animated);\r\n                });\r\n\r\n                setTimeout(function () {\r\n                    afterSectionLoads(v);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                v.scrollOptions = getScrollProp(v.scrolling);\r\n\r\n                if(v.animated){\r\n                    v.animateSection.animate(\r\n                        v.scrollOptions,\r\n                    options.scrollingSpeed, options.easing, function () {\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    });\r\n                }else{\r\n                    v.animateSection.css(getScrollProp(v.scrolling));\r\n                    setTimeout(function(){\r\n                        readjustSections(v);\r\n                        afterSectionLoads(v);\r\n                    },400);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Actions to execute after a secion is loaded\r\n        */\r\n        function afterSectionLoads(v){\r\n            //callback (afterLoad) if the site is not just resizing and readjusting the slides\r\n            $.isFunction(options.afterLoad) && options.afterLoad.call(this, v.anchorLink, (v.sectionIndex + 1));\r\n        }\r\n\r\n\r\n        function getSectionsToMove(v){\r\n            var sectionToMove;\r\n\r\n            if(v.yMovement === 'down'){\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index < v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }else{\r\n                sectionToMove = $('.pp-section').map(function(index){\r\n                    if (index > v.destination.index('.pp-section')){\r\n                        return $(this);\r\n                    }\r\n                });\r\n            }\r\n\r\n            return sectionToMove;\r\n        }\r\n\r\n        /**\r\n        * Returns the sections to re-adjust in the background after the section loads.\r\n        */\r\n        function readjustSections(v){\r\n            if(v.yMovement === 'up'){\r\n                v.sectionsToMove.each(function(index){\r\n                    $(this).css(getScrollProp(v.scrolling));\r\n                });\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Gets the property used to create the scrolling effect when using jQuery animations\r\n        * depending on the plugin direction option.\r\n        */\r\n        function getScrollProp(propertyValue){\r\n            if(options.direction === 'vertical'){\r\n                return {'top': propertyValue};\r\n            }\r\n            return {'left': propertyValue};\r\n        }\r\n\r\n        /**\r\n        * Scrolls the site without anymations (usually used in the background without the user noticing it)\r\n        */\r\n        function silentScroll(section, offset){\r\n            if (options.css3) {\r\n                transformContainer(section, getTranslate3d(), false);\r\n            }\r\n            else{\r\n                section.css(getScrollProp(offset));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink, sectionIndex){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n\r\n                setBodyClass(location.hash);\r\n            }else{\r\n                setBodyClass(String(sectionIndex));\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(text){\r\n            //removing the #\r\n            text = text.replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            $('body')[0].className = $('body')[0].className.replace(/\\b\\s?pp-viewing-[^\\s]+\\b/g, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('pp-viewing-' + text);\r\n        }\r\n\r\n        //TO DO\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n            var section = $(document).find('.pp-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(section.length > 0){  //if theres any #\r\n                scrollPage(section, options.animateAnchor);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Determines if the transitions between sections still taking place.\r\n        * The variable `scrollDelay` adds a \"save zone\" for devices such as Apple laptops and Apple magic mouses\r\n        */\r\n        function isMoving(){\r\n            var timeNow = new Date().getTime();\r\n            // Cancel scroll if currently animating or within quiet period\r\n            if (timeNow - lastAnimation < scrollDelay + options.scrollingSpeed) {\r\n                return true;\r\n            }\r\n            return false;\r\n        }\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        /**\r\n        * Actions to do when the hash (#) in the URL changes.\r\n        */\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '').split('/');\r\n            var sectionAnchor = value[0];\r\n\r\n            if(sectionAnchor.length){\r\n                /*in order to call scrollpage() only once for each destination at a time\r\n                It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\r\n                event is fired on every scroll too.*/\r\n                if (sectionAnchor && sectionAnchor !== lastScrolledDestiny)  {\r\n                    var section;\r\n\r\n                    if(isNaN(sectionAnchor)){\r\n                        section = $(document).find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n                    }else{\r\n                        section = $('.pp-section').eq( (sectionAnchor -1) );\r\n                    }\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Cross browser transformations\r\n        */\r\n        function getTransforms(translate3d) {\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                    '-moz-transform': translate3d,\r\n                    '-ms-transform': translate3d,\r\n                    'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n         */\r\n        function transformContainer(element, translate3d, animated) {\r\n            element.toggleClass('pp-easing', animated);\r\n\r\n            element.css(getTransforms(translate3d));\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        $(document).keydown(function (e) {\r\n            if(options.keyboardScrolling && !isMoving()){\r\n                //Moving the main page with the keyboard arrows if keyboard scrolling is enabled\r\n                switch (e.which) {\r\n                        //up\r\n                    case 38:\r\n                    case 33:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //down\r\n                    case 40:\r\n                    case 34:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                        //Home\r\n                    case 36:\r\n                        PP.moveTo(1);\r\n                        break;\r\n\r\n                        //End\r\n                    case 35:\r\n                        PP.moveTo($('.pp-section').length);\r\n                        break;\r\n\r\n                        //left\r\n                    case 37:\r\n                        PP.moveSectionUp();\r\n                        break;\r\n\r\n                        //right\r\n                    case 39:\r\n                        PP.moveSectionDown();\r\n                        break;\r\n\r\n                    default:\r\n                        return; // exit this handler for other keys\r\n                }\r\n            }\r\n        });\r\n\r\n        /**\r\n        * If `normalScrollElements` is used, the mouse wheel scrolling will scroll normally\r\n        * over the defined elements in the option.\r\n        */\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                PP.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                PP.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        var prevTime = new Date().getTime();\r\n\r\n        function MouseWheelHandler(e) {\r\n        \tvar curTime = new Date().getTime();\r\n\r\n        \t// cross-browser wheel delta\r\n            e = e || window.event;\r\n            var value = e.wheelDelta || -e.deltaY || -e.detail;\r\n            var delta = Math.max(-1, Math.min(1, value));\r\n\r\n            var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\r\n            var isScrollingVertically = (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX ) < Math.abs(e.deltaY) || !horizontalDetection);\r\n\r\n\t\t\t//Limiting the array to 150 (lets not waste memory!)\r\n            if(scrollings.length > 149){\r\n                scrollings.shift();\r\n            }\r\n\r\n            //keeping record of the previous scrollings\r\n            scrollings.push(Math.abs(value));\r\n\r\n            //time difference between the last scroll and the current one\r\n            var timeDiff = curTime-prevTime;\r\n            prevTime = curTime;\r\n\r\n            //haven't they scrolled in a while?\r\n            //(enough to be consider a different scrolling action to scroll another section)\r\n            if(timeDiff > 200){\r\n                //emptying the array, we dont care about old scrollings for our averages\r\n                scrollings = [];\r\n            }\r\n\r\n            if(!isMoving()){\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                var averageEnd = getAverage(scrollings, 10);\r\n                var averageMiddle = getAverage(scrollings, 70);\r\n                var isAccelerating = averageEnd >= averageMiddle;\r\n\r\n                if(isAccelerating && isScrollingVertically){\r\n\t                //scrolling down?\r\n\t                if (delta < 0) {\r\n\t                    scrolling('down', scrollable);\r\n\r\n\t                //scrolling up?\r\n\t                }else if(delta>0){\r\n\t                    scrolling('up', scrollable);\r\n\t                }\r\n\t            }\r\n\r\n                return false;\r\n            }\r\n         }\r\n\r\n        /**\r\n        * Gets the average of the last `number` elements of the given array.\r\n        */\r\n        function getAverage(elements, number){\r\n            var sum = 0;\r\n\r\n            //taking `number` elements from the end to make the average, if there are not enought, 1\r\n            var lastElements = elements.slice(Math.max(elements.length - number, 1));\r\n\r\n            for(var i = 0; i < lastElements.length; i++){\r\n                sum = sum + lastElements[i];\r\n            }\r\n\r\n            return Math.ceil(sum/number);\r\n        }\r\n\r\n        /**\r\n        * Determines the way of scrolling up or down:\r\n        * by 'automatically' scrolling a section or by using the default and normal scrolling.\r\n        */\r\n        function scrolling(type, scrollable){\r\n            var check;\r\n            var scrollSection;\r\n\r\n            if(type == 'down'){\r\n                check = 'bottom';\r\n                scrollSection = PP.moveSectionDown;\r\n            }else{\r\n                check = 'top';\r\n                scrollSection = PP.moveSectionUp;\r\n            }\r\n\r\n            if(scrollable.length > 0 ){\r\n                //is the scrollbar at the start/end of the scroll?\r\n                if(isScrolled(check, scrollable)){\r\n                    scrollSection();\r\n                }else{\r\n                    return true;\r\n                }\r\n            }else{\r\n                //moved up/down\r\n                scrollSection();\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Return a boolean depending on whether the scrollable element is at the end or at the start of the scrolling\r\n        * depending on the given type.\r\n        */\r\n        function isScrolled(type, scrollable){\r\n            if(type === 'top'){\r\n                return !scrollable.scrollTop();\r\n            }else if(type === 'bottom'){\r\n                return scrollable.scrollTop() + 1 + scrollable.innerHeight() >= scrollable[0].scrollHeight;\r\n            }\r\n        }\r\n\r\n         /**\r\n        * Determines whether the active section or slide is scrollable through and scrolling bar\r\n        */\r\n        function isScrollable(activeSection){\r\n            return activeSection.filter('.pp-scrollable');\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (container.get(0).addEventListener) {\r\n                container.get(0).addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                container.get(0).addEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                container.get(0).attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                container.off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                var MSPointer = getMSPointer();\r\n\r\n                container.off('touchstart ' + MSPointer.down);\r\n                container.off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11 & rest of browsers\r\n            if(window.PointerEvent){\r\n                pointer = { down: 'pointerdown', move: 'pointermove', up: 'pointerup'};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: 'MSPointerDown', move: 'MSPointerMove', up: 'MSPointerUp'};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = new Array();\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n        /**\r\n        * Getting the starting possitions of the touch event\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents.y;\r\n                touchStartX = touchEvents.x;\r\n            }\r\n        }\r\n\r\n        /* Detecting touch events\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            // additional: if one of the normalScrollElements isn't within options.normalScrollElementTouchThreshold hops up the DOM chain\r\n            if ( !checkParentForNormalScrollElement(event.target) && isReallyTouch(e) ) {\r\n\r\n                var activeSection = $('.pp-section.active');\r\n                var scrollable = isScrollable(activeSection);\r\n\r\n                if(!scrollable.length){\r\n                    event.preventDefault();\r\n                }\r\n\r\n                if (!isMoving()) {\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents.y;\r\n                    touchEndX = touchEvents.x;\r\n\r\n                  //$('body').append('<span style=\"position:fixed; top: 250px; left: 20px; z-index:88; font-size: 25px; color: #000;\">touchEndY: ' + touchEndY  + '</div>');\r\n\r\n                    //X movement bigger than Y movement?\r\n                    if (options.direction === 'horizontal' && Math.abs(touchStartX - touchEndX) > (Math.abs(touchStartY - touchEndY))) {\r\n                        //is the movement greater than the minimum resistance to scroll?\r\n                        if (Math.abs(touchStartX - touchEndX) > (container.width() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartX > touchEndX) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndX > touchStartX) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (Math.abs(touchStartY - touchEndY) > (container.height() / 100 * options.touchSensitivity)) {\r\n                            if (touchStartY > touchEndY) {\r\n                                scrolling('down', scrollable);\r\n                            } else if (touchEndY > touchStartY) {\r\n                                scrolling('up', scrollable);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * recursive function to loop up the parent nodes to check if one of them exists in options.normalScrollElements\r\n         * Currently works well for iOS - Android might need some testing\r\n         * @param  {Element} el  target element / jquery selector (in subsequent nodes)\r\n         * @param  {int}     hop current hop compared to options.normalScrollElementTouchThreshold\r\n         * @return {boolean} true if there is a match to options.normalScrollElements\r\n         */\r\n        function checkParentForNormalScrollElement (el, hop) {\r\n            hop = hop || 0;\r\n            var parent = $(el).parent();\r\n\r\n            if (hop < options.normalScrollElementTouchThreshold &&\r\n                parent.is(options.normalScrollElements) ) {\r\n                return true;\r\n            } else if (hop == options.normalScrollElementTouchThreshold) {\r\n                return false;\r\n            } else {\r\n                return checkParentForNormalScrollElement(parent, ++hop);\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Creates a vertical navigation bar.\r\n        */\r\n        function addVerticalNavigation(){\r\n            $('body').append('<div id=\"pp-nav\"><ul></ul></div>');\r\n            var nav = $('#pp-nav');\r\n\r\n            nav.css('color', options.navigation.textColor);\r\n\r\n            nav.addClass(options.navigation.position);\r\n\r\n            for(var cont = 0; cont < $('.pp-section').length; cont++){\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[cont];\r\n                }\r\n                if(options.navigation.tooltips !== 'undefined'){\r\n                    var tooltip = options.navigation.tooltips[cont];\r\n                    if(typeof tooltip === 'undefined'){\r\n                        tooltip = '';\r\n                    }\r\n                }\r\n\r\n                nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n            }\r\n\r\n            nav.find('span').css('border-color', options.navigation.bulletsColor);\r\n        }\r\n\r\n        /**\r\n        * Scrolls to the section when clicking the navigation bullet\r\n        */\r\n        $(document).on('click touchstart', '#pp-nav a', function(e){\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n\r\n            scrollPage($('.pp-section').eq(index));\r\n        });\r\n\r\n        /**\r\n        * Navigation tooltips\r\n        */\r\n        $(document).on({\r\n            mouseenter: function(){\r\n                var tooltip = $(this).data('tooltip');\r\n                $('<div class=\"pp-tooltip ' + options.navigation.position +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n            },\r\n            mouseleave: function(){\r\n                $(this).find('.pp-tooltip').fadeOut(200, function() {\r\n                    $(this).remove();\r\n                });\r\n            }\r\n        }, '#pp-nav li');\r\n\r\n         /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#pp-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#pp-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#pp-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = 'translate3d(1px,1px,1px)';\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== 'none');\r\n        }\r\n\r\n        /**\r\n        * Gets the translate3d property to apply when using css3:true depending on the `direction` option.\r\n        */\r\n        function getTranslate3d(){\r\n            if (options.direction !== 'vertical') {\r\n                  return 'translate3d(-100%, 0px, 0px)';\r\n            }\r\n\r\n            return 'translate3d(0px, -100%, 0px)';\r\n        }\r\n\r\n    };\r\n})(jQuery, document, window);"]}
\ No newline at end of file
diff --git a/gulpfile.js b/gulpfile.js
index 0140d12..2df3a8a 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -2,7 +2,6 @@ var gulp = require('gulp');
 var rename = require('gulp-rename');
 var sourcemaps = require('gulp-sourcemaps');
 var uglify = require('gulp-uglify');
-var sass = require('gulp-sass');
 var minifyCss = require('gulp-clean-css');
 
 gulp.task('css', function() {
diff --git a/jquery.pagepiling.css b/jquery.pagepiling.css
index b989e34..a9dd19e 100644
--- a/jquery.pagepiling.css
+++ b/jquery.pagepiling.css
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.4
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/jquery.pagepiling.js b/jquery.pagepiling.js
index fc2c6e9..37908e2 100644
--- a/jquery.pagepiling.js
+++ b/jquery.pagepiling.js
@@ -1,5 +1,5 @@
 /*!
- * pagepiling.js 1.5.5
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
  * @license MIT licensed
diff --git a/jquery.pagepiling.min.js b/jquery.pagepiling.min.js
index b5f037a..1c5abd2 100644
--- a/jquery.pagepiling.min.js
+++ b/jquery.pagepiling.min.js
@@ -1,27 +1,9 @@
 /*!
- * pagepiling.js 1.5.5
+ * pagepiling.js 1.5.6
  *
  * https://github.com/alvarotrigo/pagePiling.js
- * MIT licensed
+ * @license MIT licensed
  *
- * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
-(function(b,h,k,z){b.fn.pagepiling=function(M){function N(a){var f=b(".pp-section.active").index(".pp-section");a=a.index(".pp-section");return f>a?"up":"down"}function l(a,f){var d={destination:a,animated:f,activeSection:b(".pp-section.active"),anchorLink:a.data("anchor"),sectionIndex:a.index(".pp-section"),toMove:a,yMovement:N(a),leavingSection:b(".pp-section.active").index(".pp-section")+1};d.activeSection.is(a)||("undefined"===typeof d.animated&&(d.animated=!0),"undefined"!==typeof d.anchorLink&&
-O(d.anchorLink,d.sectionIndex),d.destination.addClass("active").siblings().removeClass("active"),d.sectionsToMove=P(d),"down"===d.yMovement?(d.translate3d="vertical"!==c.direction?"translate3d(-100%, 0px, 0px)":"translate3d(0px, -100%, 0px)",d.scrolling="-100%",c.css3||d.sectionsToMove.each(function(a){a!=d.activeSection.index(".pp-section")&&b(this).css(v(d.scrolling))}),d.animateSection=d.activeSection):(d.translate3d="translate3d(0px, 0px, 0px)",d.scrolling="0",d.animateSection=a),b.isFunction(c.onLeave)&&
-c.onLeave.call(this,d.leavingSection,d.sectionIndex+1,d.yMovement),Q(d),R(d.anchorLink),S(d.anchorLink,d.sectionIndex),A=d.anchorLink,B=(new Date).getTime())}function Q(a){c.css3?(C(a.animateSection,a.translate3d,a.animated),a.sectionsToMove.each(function(){C(b(this),a.translate3d,a.animated)}),setTimeout(function(){w(a)},c.scrollingSpeed)):(a.scrollOptions=v(a.scrolling),a.animated?a.animateSection.animate(a.scrollOptions,c.scrollingSpeed,c.easing,function(){D(a);w(a)}):(a.animateSection.css(v(a.scrolling)),
-setTimeout(function(){D(a);w(a)},400)))}function w(a){b.isFunction(c.afterLoad)&&c.afterLoad.call(this,a.anchorLink,a.sectionIndex+1)}function P(a){return"down"===a.yMovement?b(".pp-section").map(function(f){if(f<a.destination.index(".pp-section"))return b(this)}):b(".pp-section").map(function(f){if(f>a.destination.index(".pp-section"))return b(this)})}function D(a){"up"===a.yMovement&&a.sectionsToMove.each(function(f){b(this).css(v(a.scrolling))})}function v(a){return"vertical"===c.direction?{top:a}:
-{left:a}}function O(a,b){c.anchors.length?(location.hash=a,E(location.hash)):E(String(b))}function E(a){a=a.replace("#","");b("body")[0].className=b("body")[0].className.replace(/\b\s?pp-viewing-[^\s]+\b/g,"");b("body").addClass("pp-viewing-"+a)}function x(){return(new Date).getTime()-B<600+c.scrollingSpeed?!0:!1}function C(a,b,d){a.toggleClass("pp-easing",d);a.css({"-webkit-transform":b,"-moz-transform":b,"-ms-transform":b,transform:b})}function m(a){var f=(new Date).getTime();a=a||k.event;var d=
-a.wheelDelta||-a.deltaY||-a.detail,c=Math.max(-1,Math.min(1,d)),e="undefined"!==typeof a.wheelDeltaX||"undefined"!==typeof a.deltaX;a=Math.abs(a.wheelDeltaX)<Math.abs(a.wheelDelta)||Math.abs(a.deltaX)<Math.abs(a.deltaY)||!e;149<n.length&&n.shift();n.push(Math.abs(d));d=f-F;F=f;200<d&&(n=[]);if(!x())return f=b(".pp-section.active").filter(".pp-scrollable"),d=G(n,10),e=G(n,70),d>=e&&a&&(0>c?p("down",f):0<c&&p("up",f)),!1}function G(a,b){for(var d=0,c=a.slice(Math.max(a.length-b,1)),e=0;e<c.length;e++)d+=
-c[e];return Math.ceil(d/b)}function p(a,b){var d,c;"down"==a?(d="bottom",c=e.moveSectionDown):(d="top",c=e.moveSectionUp);if(0<b.length)if(d="top"===d?!b.scrollTop():"bottom"===d?b.scrollTop()+1+b.innerHeight()>=b[0].scrollHeight:void 0,d)c();else return!0;else c()}function H(){return k.PointerEvent?{down:"pointerdown",move:"pointermove",up:"pointerup"}:{down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp"}}function I(a){var b=[];b.y="undefined"!==typeof a.pageY&&(a.pageY||a.pageX)?a.pageY:
-a.touches[0].pageY;b.x="undefined"!==typeof a.pageX&&(a.pageY||a.pageX)?a.pageX:a.touches[0].pageX;return b}function J(a){return"undefined"===typeof a.pointerType||"mouse"!=a.pointerType}function T(a){a=a.originalEvent;J(a)&&(a=I(a),q=a.y,r=a.x)}function U(a){var f=a.originalEvent;if(!K(a.target)&&J(f)){var d=b(".pp-section.active").filter(".pp-scrollable");d.length||a.preventDefault();x()||(a=I(f),t=a.y,u=a.x,"horizontal"===c.direction&&Math.abs(r-u)>Math.abs(q-t)?Math.abs(r-u)>g.width()/100*c.touchSensitivity&&
-(r>u?p("down",d):u>r&&p("up",d)):Math.abs(q-t)>g.height()/100*c.touchSensitivity&&(q>t?p("down",d):t>q&&p("up",d)))}}function K(a,f){f=f||0;var d=b(a).parent();return f<c.normalScrollElementTouchThreshold&&d.is(c.normalScrollElements)?!0:f==c.normalScrollElementTouchThreshold?!1:K(d,++f)}function V(){b("body").append('<div id="pp-nav"><ul></ul></div>');var a=b("#pp-nav");a.css("color",c.navigation.textColor);a.addClass(c.navigation.position);for(var f=0;f<b(".pp-section").length;f++){var d="";c.anchors.length&&
-(d=c.anchors[f]);if("undefined"!==c.navigation.tooltips){var e=c.navigation.tooltips[f];"undefined"===typeof e&&(e="")}a.find("ul").append('<li data-tooltip="'+e+'"><a href="#'+d+'"><span></span></a></li>')}a.find("span").css("border-color",c.navigation.bulletsColor)}function S(a,f){c.navigation&&(b("#pp-nav").find(".active").removeClass("active"),a?b("#pp-nav").find('a[href="#'+a+'"]').addClass("active"):b("#pp-nav").find("li").eq(f).find("a").addClass("active"))}function R(a){c.menu&&(b(c.menu).find(".active").removeClass("active"),
-b(c.menu).find('[data-menuanchor="'+a+'"]').addClass("active"))}function W(){var a=h.createElement("p"),b,d={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};h.body.insertBefore(a,null);for(var c in d)a.style[c]!==z&&(a.style[c]="translate3d(1px,1px,1px)",b=k.getComputedStyle(a).getPropertyValue(d[c]));h.body.removeChild(a);return b!==z&&0<b.length&&"none"!==b}var e=b.fn.pagepiling,g=b(this),A,B=0,L="ontouchstart"in
-k||0<navigator.msMaxTouchPoints||navigator.maxTouchPoints,q=0,r=0,t=0,u=0,n=[],c=b.extend(!0,{direction:"vertical",menu:null,verticalCentered:!0,sectionsColor:[],anchors:[],scrollingSpeed:700,easing:"easeInQuart",loopBottom:!1,loopTop:!1,css3:!0,navigation:{textColor:"#000",bulletsColor:"#000",position:"right",tooltips:[]},normalScrollElements:null,normalScrollElementTouchThreshold:5,touchSensitivity:5,keyboardScrolling:!0,sectionSelector:".section",animateAnchor:!1,afterLoad:null,onLeave:null,afterRender:null},
-M);b.extend(b.easing,{easeInQuart:function(a,b,c,e,g){return e*(b/=g)*b*b*b+c}});e.setScrollingSpeed=function(a){c.scrollingSpeed=a};e.setMouseWheelScrolling=function(a){a?g.get(0).addEventListener?(g.get(0).addEventListener("mousewheel",m,!1),g.get(0).addEventListener("wheel",m,!1)):g.get(0).attachEvent("onmousewheel",m):g.get(0).addEventListener?(g.get(0).removeEventListener("mousewheel",m,!1),g.get(0).removeEventListener("wheel",m,!1)):g.get(0).detachEvent("onmousewheel",m)};e.setAllowScrolling=
-function(a){a?(e.setMouseWheelScrolling(!0),L&&(a=H(),g.off("touchstart "+a.down).on("touchstart "+a.down,T),g.off("touchmove "+a.move).on("touchmove "+a.move,U))):(e.setMouseWheelScrolling(!1),L&&(a=H(),g.off("touchstart "+a.down),g.off("touchmove "+a.move)))};e.setKeyboardScrolling=function(a){c.keyboardScrolling=a};e.moveSectionUp=function(){var a=b(".pp-section.active").prev(".pp-section");!a.length&&c.loopTop&&(a=b(".pp-section").last());a.length&&l(a)};e.moveSectionDown=function(){var a=b(".pp-section.active").next(".pp-section");
-!a.length&&c.loopBottom&&(a=b(".pp-section").first());a.length&&l(a)};e.moveTo=function(a){var c="",c=isNaN(a)?b(h).find('[data-anchor="'+a+'"]'):b(".pp-section").eq(a-1);0<c.length&&l(c)};b(c.sectionSelector).each(function(){b(this).addClass("pp-section")});c.css3&&(c.css3=W());b(g).css({overflow:"hidden","-ms-touch-action":"none","touch-action":"none"});e.setAllowScrolling(!0);b.isEmptyObject(c.navigation)||V();var y=b(".pp-section").length;b(".pp-section").each(function(a){b(this).data("data-index",
-a);b(this).css("z-index",y);a||0!==b(".pp-section.active").length||b(this).addClass("active");"undefined"!==typeof c.anchors[a]&&b(this).attr("data-anchor",c.anchors[a]);"undefined"!==typeof c.sectionsColor[a]&&b(this).css("background-color",c.sectionsColor[a]);c.verticalCentered&&!b(this).hasClass("pp-scrollable")&&b(this).addClass("pp-table").wrapInner('<div class="pp-tableCell" style="height:100%" />');--y}).promise().done(function(){c.navigation&&(b("#pp-nav").css("margin-top","-"+b("#pp-nav").height()/
-2+"px"),b("#pp-nav").find("li").eq(b(".pp-section.active").index(".pp-section")).find("a").addClass("active"));b(k).on("load",function(){var a=k.location.hash.replace("#",""),a=b(h).find('.pp-section[data-anchor="'+a+'"]');0<a.length&&l(a,c.animateAnchor)});b.isFunction(c.afterRender)&&c.afterRender.call(this)});b(k).on("hashchange",function(){var a=k.location.hash.replace("#","").split("/")[0];a.length&&a&&a!==A&&(a=isNaN(a)?b(h).find('[data-anchor="'+a+'"]'):b(".pp-section").eq(a-1),l(a))});b(h).keydown(function(a){if(c.keyboardScrolling&&
-!x())switch(a.which){case 38:case 33:e.moveSectionUp();break;case 40:case 34:e.moveSectionDown();break;case 36:e.moveTo(1);break;case 35:e.moveTo(b(".pp-section").length);break;case 37:e.moveSectionUp();break;case 39:e.moveSectionDown()}});c.normalScrollElements&&(b(h).on("mouseenter",c.normalScrollElements,function(){e.setMouseWheelScrolling(!1)}),b(h).on("mouseleave",c.normalScrollElements,function(){e.setMouseWheelScrolling(!0)}));var F=(new Date).getTime();b(h).on("click touchstart","#pp-nav a",
-function(a){a.preventDefault();a=b(this).parent().index();l(b(".pp-section").eq(a))});b(h).on({mouseenter:function(){var a=b(this).data("tooltip");b('<div class="pp-tooltip '+c.navigation.position+'">'+a+"</div>").hide().appendTo(b(this)).fadeIn(200)},mouseleave:function(){b(this).find(".pp-tooltip").fadeOut(200,function(){b(this).remove()})}},"#pp-nav li")}})(jQuery,document,window);
\ No newline at end of file
+!function(e,n,t,o){"use strict";e.fn.pagepiling=function(i){function a(e){e.addClass("pp-table").wrapInner('<div class="pp-tableCell" style="height:100%" />')}function s(n){var t=e(".pp-section.active").index(".pp-section"),o=n.index(".pp-section");return t>o?"up":"down"}function c(n,t){var o={destination:n,animated:t,activeSection:e(".pp-section.active"),anchorLink:n.data("anchor"),sectionIndex:n.index(".pp-section"),toMove:n,yMovement:s(n),leavingSection:e(".pp-section.active").index(".pp-section")+1};if(!o.activeSection.is(n)){"undefined"==typeof o.animated&&(o.animated=!0),"undefined"!=typeof o.anchorLink&&v(o.anchorLink,o.sectionIndex),o.destination.addClass("active").siblings().removeClass("active"),o.sectionsToMove=p(o),"down"===o.yMovement?(o.translate3d=U(),o.scrolling="-100%",Z.css3||o.sectionsToMove.each(function(n){n!=o.activeSection.index(".pp-section")&&e(this).css(u(o.scrolling))}),o.animateSection=o.activeSection):(o.translate3d="translate3d(0px, 0px, 0px)",o.scrolling="0",o.animateSection=n),e.isFunction(Z.onLeave)&&Z.onLeave.call(this,o.leavingSection,o.sectionIndex+1,o.yMovement),r(o),A(o.anchorLink),z(o.anchorLink,o.sectionIndex),W=o.anchorLink;var i=(new Date).getTime();Q=i}}function r(n){Z.css3?(w(n.animateSection,n.translate3d,n.animated),n.sectionsToMove.each(function(){w(e(this),n.translate3d,n.animated)}),setTimeout(function(){l(n)},Z.scrollingSpeed)):(n.scrollOptions=u(n.scrolling),n.animated?n.animateSection.animate(n.scrollOptions,Z.scrollingSpeed,Z.easing,function(){d(n),l(n)}):(n.animateSection.css(u(n.scrolling)),setTimeout(function(){d(n),l(n)},400)))}function l(n){e.isFunction(Z.afterLoad)&&Z.afterLoad.call(this,n.anchorLink,n.sectionIndex+1)}function p(n){var t;return t="down"===n.yMovement?e(".pp-section").map(function(t){if(t<n.destination.index(".pp-section"))return e(this)}):e(".pp-section").map(function(t){if(t>n.destination.index(".pp-section"))return e(this)})}function d(n){"up"===n.yMovement&&n.sectionsToMove.each(function(t){e(this).css(u(n.scrolling))})}function u(e){return"vertical"===Z.direction?{top:e}:{left:e}}function v(e,n){Z.anchors.length?(location.hash=e,f(location.hash)):f(String(n))}function f(n){n=n.replace("#",""),e("body")[0].className=e("body")[0].className.replace(/\b\s?pp-viewing-[^\s]+\b/g,""),e("body").addClass("pp-viewing-"+n)}function h(){var o=t.location.hash.replace("#",""),i=o,a=e(n).find('.pp-section[data-anchor="'+i+'"]');a.length>0&&c(a,Z.animateAnchor)}function m(){var e=(new Date).getTime();return e-Q<J+Z.scrollingSpeed}function g(){var o=t.location.hash.replace("#","").split("/"),i=o[0];if(i.length&&i&&i!==W){var a;a=isNaN(i)?e(n).find('[data-anchor="'+i+'"]'):e(".pp-section").eq(i-1),c(a)}}function S(e){return{"-webkit-transform":e,"-moz-transform":e,"-ms-transform":e,transform:e}}function w(e,n,t){e.toggleClass("pp-easing",t),e.css(S(n))}function b(n){var o=(new Date).getTime();n=n||t.event;var i=n.wheelDelta||-n.deltaY||-n.detail,a=Math.max(-1,Math.min(1,i)),s="undefined"!=typeof n.wheelDeltaX||"undefined"!=typeof n.deltaX,c=Math.abs(n.wheelDeltaX)<Math.abs(n.wheelDelta)||Math.abs(n.deltaX)<Math.abs(n.deltaY)||!s;G.length>149&&G.shift(),G.push(Math.abs(i));var r=o-_;if(_=o,r>200&&(G=[]),!m()){var l=e(".pp-section.active"),p=T(l),d=y(G,10),u=y(G,70),v=d>=u;return v&&c&&(a<0?x("down",p):a>0&&x("up",p)),!1}}function y(e,n){for(var t=0,o=e.slice(Math.max(e.length-n,1)),i=0;i<o.length;i++)t+=o[i];return Math.ceil(t/n)}function x(e,n){var t,o;if("down"==e?(t="bottom",o=B.moveSectionDown):(t="top",o=B.moveSectionUp),n.length>0){if(!M(t,n))return!0;o()}else o()}function M(e,n){return"top"===e?!n.scrollTop():"bottom"===e?n.scrollTop()+1+n.innerHeight()>=n[0].scrollHeight:void 0}function T(e){return e.filter(".pp-scrollable")}function C(){F.get(0).addEventListener?(F.get(0).removeEventListener("mousewheel",b,!1),F.get(0).removeEventListener("wheel",b,!1)):F.get(0).detachEvent("onmousewheel",b)}function k(){F.get(0).addEventListener?(F.get(0).addEventListener("mousewheel",b,!1),F.get(0).addEventListener("wheel",b,!1)):F.get(0).attachEvent("onmousewheel",b)}function E(){if(R){var e=D();F.off("touchstart "+e.down).on("touchstart "+e.down,P),F.off("touchmove "+e.move).on("touchmove "+e.move,Y)}}function L(){if(R){var e=D();F.off("touchstart "+e.down),F.off("touchmove "+e.move)}}function D(){var e;return e=t.PointerEvent?{down:"pointerdown",move:"pointermove",up:"pointerup"}:{down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp"}}function I(e){var n=new Array;return n.y="undefined"!=typeof e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,n.x="undefined"!=typeof e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,n}function X(e){return"undefined"==typeof e.pointerType||"mouse"!=e.pointerType}function P(e){var n=e.originalEvent;if(X(n)){var t=I(n);j=t.y,H=t.x}}function Y(n){var t=n.originalEvent;if(!N(n.target)&&X(t)){var o=e(".pp-section.active"),i=T(o);if(i.length||n.preventDefault(),!m()){var a=I(t);K=a.y,V=a.x,"horizontal"===Z.direction&&Math.abs(H-V)>Math.abs(j-K)?Math.abs(H-V)>F.width()/100*Z.touchSensitivity&&(H>V?x("down",i):V>H&&x("up",i)):Math.abs(j-K)>F.height()/100*Z.touchSensitivity&&(j>K?x("down",i):K>j&&x("up",i))}}}function N(n,t){t=t||0;var o=e(n).parent();return!!(t<Z.normalScrollElementTouchThreshold&&o.is(Z.normalScrollElements))||t!=Z.normalScrollElementTouchThreshold&&N(o,++t)}function q(){e("body").append('<div id="pp-nav"><ul></ul></div>');var n=e("#pp-nav");n.css("color",Z.navigation.textColor),n.addClass(Z.navigation.position);for(var t=0;t<e(".pp-section").length;t++){var o="";if(Z.anchors.length&&(o=Z.anchors[t]),"undefined"!==Z.navigation.tooltips){var i=Z.navigation.tooltips[t];"undefined"==typeof i&&(i="")}n.find("ul").append('<li data-tooltip="'+i+'"><a href="#'+o+'"><span></span></a></li>')}n.find("span").css("border-color",Z.navigation.bulletsColor)}function z(n,t){Z.navigation&&(e("#pp-nav").find(".active").removeClass("active"),n?e("#pp-nav").find('a[href="#'+n+'"]').addClass("active"):e("#pp-nav").find("li").eq(t).find("a").addClass("active"))}function A(n){Z.menu&&(e(Z.menu).find(".active").removeClass("active"),e(Z.menu).find('[data-menuanchor="'+n+'"]').addClass("active"))}function O(){var e,i=n.createElement("p"),a={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};n.body.insertBefore(i,null);for(var s in a)i.style[s]!==o&&(i.style[s]="translate3d(1px,1px,1px)",e=t.getComputedStyle(i).getPropertyValue(a[s]));return n.body.removeChild(i),e!==o&&e.length>0&&"none"!==e}function U(){return"vertical"!==Z.direction?"translate3d(-100%, 0px, 0px)":"translate3d(0px, -100%, 0px)"}var W,B=e.fn.pagepiling,F=e(this),Q=0,R="ontouchstart"in t||navigator.msMaxTouchPoints>0||navigator.maxTouchPoints,j=0,H=0,K=0,V=0,G=[],J=600,Z=e.extend(!0,{direction:"vertical",menu:null,verticalCentered:!0,sectionsColor:[],anchors:[],scrollingSpeed:700,easing:"easeInQuart",loopBottom:!1,loopTop:!1,css3:!0,navigation:{textColor:"#000",bulletsColor:"#000",position:"right",tooltips:[]},normalScrollElements:null,normalScrollElementTouchThreshold:5,touchSensitivity:5,keyboardScrolling:!0,sectionSelector:".section",animateAnchor:!1,afterLoad:null,onLeave:null,afterRender:null},i);e.extend(e.easing,{easeInQuart:function(e,n,t,o,i){return o*(n/=i)*n*n*n+t}}),B.setScrollingSpeed=function(e){Z.scrollingSpeed=e},B.setMouseWheelScrolling=function(e){e?k():C()},B.setAllowScrolling=function(e){e?(B.setMouseWheelScrolling(!0),E()):(B.setMouseWheelScrolling(!1),L())},B.setKeyboardScrolling=function(e){Z.keyboardScrolling=e},B.moveSectionUp=function(){var n=e(".pp-section.active").prev(".pp-section");!n.length&&Z.loopTop&&(n=e(".pp-section").last()),n.length&&c(n)},B.moveSectionDown=function(){var n=e(".pp-section.active").next(".pp-section");!n.length&&Z.loopBottom&&(n=e(".pp-section").first()),n.length&&c(n)},B.moveTo=function(t){var o="";o=isNaN(t)?e(n).find('[data-anchor="'+t+'"]'):e(".pp-section").eq(t-1),o.length>0&&c(o)},e(Z.sectionSelector).each(function(){e(this).addClass("pp-section")}),Z.css3&&(Z.css3=O()),e(F).css({overflow:"hidden","-ms-touch-action":"none","touch-action":"none"}),B.setAllowScrolling(!0),e.isEmptyObject(Z.navigation)||q();var $=e(".pp-section").length;e(".pp-section").each(function(n){e(this).data("data-index",n),e(this).css("z-index",$),n||0!==e(".pp-section.active").length||e(this).addClass("active"),"undefined"!=typeof Z.anchors[n]&&e(this).attr("data-anchor",Z.anchors[n]),"undefined"!=typeof Z.sectionsColor[n]&&e(this).css("background-color",Z.sectionsColor[n]),Z.verticalCentered&&!e(this).hasClass("pp-scrollable")&&a(e(this)),$-=1}).promise().done(function(){Z.navigation&&(e("#pp-nav").css("margin-top","-"+e("#pp-nav").height()/2+"px"),e("#pp-nav").find("li").eq(e(".pp-section.active").index(".pp-section")).find("a").addClass("active")),e(t).on("load",function(){h()}),e.isFunction(Z.afterRender)&&Z.afterRender.call(this)}),e(t).on("hashchange",g),e(n).keydown(function(n){if(Z.keyboardScrolling&&!m())switch(n.which){case 38:case 33:B.moveSectionUp();break;case 40:case 34:B.moveSectionDown();break;case 36:B.moveTo(1);break;case 35:B.moveTo(e(".pp-section").length);break;case 37:B.moveSectionUp();break;case 39:B.moveSectionDown();break;default:return}}),Z.normalScrollElements&&(e(n).on("mouseenter",Z.normalScrollElements,function(){B.setMouseWheelScrolling(!1)}),e(n).on("mouseleave",Z.normalScrollElements,function(){B.setMouseWheelScrolling(!0)}));var _=(new Date).getTime();e(n).on("click touchstart","#pp-nav a",function(n){n.preventDefault();var t=e(this).parent().index();c(e(".pp-section").eq(t))}),e(n).on({mouseenter:function(){var n=e(this).data("tooltip");e('<div class="pp-tooltip '+Z.navigation.position+'">'+n+"</div>").hide().appendTo(e(this)).fadeIn(200)},mouseleave:function(){e(this).find(".pp-tooltip").fadeOut(200,function(){e(this).remove()})}},"#pp-nav li")}}(jQuery,document,window);
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..30cd21d
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2650 @@
+{
+  "name": "pagepiling.js",
+  "version": "1.5.5",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@gulp-sourcemaps/map-sources": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
+      "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
+      "dev": true,
+      "requires": {
+        "normalize-path": "^2.0.1",
+        "through2": "^2.0.3"
+      }
+    },
+    "acorn": {
+      "version": "4.0.13",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+      "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+      "dev": true
+    },
+    "align-text": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2",
+        "longest": "^1.0.1",
+        "repeat-string": "^1.5.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "ansi-gray": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
+      "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
+      "dev": true,
+      "requires": {
+        "ansi-wrap": "0.1.0"
+      }
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+      "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+      "dev": true
+    },
+    "ansi-wrap": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
+      "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
+      "dev": true
+    },
+    "archy": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+      "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+      "dev": true
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+      "dev": true
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+      "dev": true
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+      "dev": true
+    },
+    "array-differ": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+      "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+      "dev": true
+    },
+    "array-each": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
+      "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
+      "dev": true
+    },
+    "array-slice": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
+      "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
+      "dev": true
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+      "dev": true
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+      "dev": true
+    },
+    "async": {
+      "version": "0.2.10",
+      "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+      "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+      "dev": true
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+      "dev": true
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+      "dev": true,
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "beeper": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
+      "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
+      "dev": true
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "dev": true,
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+      "dev": true,
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "camelcase": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+      "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+      "dev": true
+    },
+    "center-align": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+      "dev": true,
+      "requires": {
+        "align-text": "^0.1.3",
+        "lazy-cache": "^1.0.3"
+      }
+    },
+    "chalk": {
+      "version": "1.1.3",
+      "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+      "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^2.2.1",
+        "escape-string-regexp": "^1.0.2",
+        "has-ansi": "^2.0.0",
+        "strip-ansi": "^3.0.0",
+        "supports-color": "^2.0.0"
+      }
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "3.4.28",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
+      "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
+      "dev": true,
+      "requires": {
+        "commander": "2.8.x",
+        "source-map": "0.4.x"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "cliui": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+      "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+      "dev": true,
+      "requires": {
+        "center-align": "^0.1.1",
+        "right-align": "^0.1.1",
+        "wordwrap": "0.0.2"
+      }
+    },
+    "clone": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+      "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+      "dev": true
+    },
+    "clone-stats": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+      "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+      "dev": true
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "dev": true,
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color-support": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+      "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+      "dev": true
+    },
+    "commander": {
+      "version": "2.8.1",
+      "resolved": "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+      "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+      "dev": true,
+      "requires": {
+        "graceful-readlink": ">= 1.0.0"
+      }
+    },
+    "component-emitter": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+      "dev": true
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+      "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+      "dev": true
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
+    },
+    "css": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+      "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "source-map": "^0.6.1",
+        "source-map-resolve": "^0.5.2",
+        "urix": "^0.1.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "dateformat": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
+      "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
+      "dev": true
+    },
+    "deap": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/deap/-/deap-1.0.1.tgz",
+      "integrity": "sha512-k75KYNZMvwAwes2xIPry/QTffXIchjD8QfABvvfTr80P85jv5ZcKqcoDo+vMe71nNnVnXYe8MA28weyqcf/DKw==",
+      "dev": true
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "debug-fabulous": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.0.4.tgz",
+      "integrity": "sha1-+gccXYdIRoVCSAdCHKSxawsaB2M=",
+      "dev": true,
+      "requires": {
+        "debug": "2.X",
+        "lazy-debug-legacy": "0.0.X",
+        "object-assign": "4.1.0"
+      },
+      "dependencies": {
+        "object-assign": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+          "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+          "dev": true
+        }
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
+    },
+    "defaults": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+      "dev": true,
+      "requires": {
+        "clone": "^1.0.2"
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+      "dev": true,
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "deprecated": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
+      "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=",
+      "dev": true
+    },
+    "detect-file": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+      "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+      "dev": true
+    },
+    "detect-newline": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+      "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
+      "dev": true
+    },
+    "duplexer2": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+      "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~1.1.9"
+      }
+    },
+    "end-of-stream": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
+      "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
+      "dev": true,
+      "requires": {
+        "once": "~1.3.0"
+      }
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-tilde": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+      "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+      "dev": true,
+      "requires": {
+        "homedir-polyfill": "^1.0.1"
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+      "dev": true
+    },
+    "extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "dev": true,
+      "requires": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+      "dev": true,
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "fancy-log": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz",
+      "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
+      "dev": true,
+      "requires": {
+        "ansi-gray": "^0.1.1",
+        "color-support": "^1.1.3",
+        "time-stamp": "^1.0.0"
+      }
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "find-index": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
+      "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
+      "dev": true
+    },
+    "findup-sync": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
+      "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
+      "dev": true,
+      "requires": {
+        "detect-file": "^1.0.0",
+        "is-glob": "^3.1.0",
+        "micromatch": "^3.0.4",
+        "resolve-dir": "^1.0.1"
+      }
+    },
+    "fined": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
+      "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
+      "dev": true,
+      "requires": {
+        "expand-tilde": "^2.0.2",
+        "is-plain-object": "^2.0.3",
+        "object.defaults": "^1.1.0",
+        "object.pick": "^1.2.0",
+        "parse-filepath": "^1.0.1"
+      }
+    },
+    "first-chunk-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+      "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
+      "dev": true
+    },
+    "flagged-respawn": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz",
+      "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=",
+      "dev": true
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+      "dev": true
+    },
+    "for-own": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.1"
+      }
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "dev": true,
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "gaze": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
+      "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
+      "dev": true,
+      "requires": {
+        "globule": "~0.1.0"
+      }
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+      "dev": true
+    },
+    "glob": {
+      "version": "4.5.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+      "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+      "dev": true,
+      "requires": {
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^2.0.1",
+        "once": "^1.3.0"
+      }
+    },
+    "glob-stream": {
+      "version": "3.1.18",
+      "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
+      "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
+      "dev": true,
+      "requires": {
+        "glob": "^4.3.1",
+        "glob2base": "^0.0.12",
+        "minimatch": "^2.0.1",
+        "ordered-read-streams": "^0.1.0",
+        "through2": "^0.6.1",
+        "unique-stream": "^1.0.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "1.0.34",
+          "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+          "dev": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.1",
+            "isarray": "0.0.1",
+            "string_decoder": "~0.10.x"
+          }
+        },
+        "through2": {
+          "version": "0.6.5",
+          "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+          "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+          "dev": true,
+          "requires": {
+            "readable-stream": ">=1.0.33-1 <1.1.0-0",
+            "xtend": ">=4.0.0 <4.1.0-0"
+          }
+        }
+      }
+    },
+    "glob-watcher": {
+      "version": "0.0.6",
+      "resolved": "http://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
+      "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
+      "dev": true,
+      "requires": {
+        "gaze": "^0.5.1"
+      }
+    },
+    "glob2base": {
+      "version": "0.0.12",
+      "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
+      "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+      "dev": true,
+      "requires": {
+        "find-index": "^0.1.1"
+      }
+    },
+    "global-modules": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+      "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+      "dev": true,
+      "requires": {
+        "global-prefix": "^1.0.1",
+        "is-windows": "^1.0.1",
+        "resolve-dir": "^1.0.0"
+      }
+    },
+    "global-prefix": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+      "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+      "dev": true,
+      "requires": {
+        "expand-tilde": "^2.0.2",
+        "homedir-polyfill": "^1.0.1",
+        "ini": "^1.3.4",
+        "is-windows": "^1.0.1",
+        "which": "^1.2.14"
+      }
+    },
+    "globule": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
+      "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
+      "dev": true,
+      "requires": {
+        "glob": "~3.1.21",
+        "lodash": "~1.0.1",
+        "minimatch": "~0.2.11"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "3.1.21",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+          "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "~1.2.0",
+            "inherits": "1",
+            "minimatch": "~0.2.11"
+          }
+        },
+        "graceful-fs": {
+          "version": "1.2.3",
+          "resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+          "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+          "dev": true
+        },
+        "inherits": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+          "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+          "dev": true
+        },
+        "minimatch": {
+          "version": "0.2.14",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "2",
+            "sigmund": "~1.0.0"
+          }
+        }
+      }
+    },
+    "glogg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
+      "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
+      "dev": true,
+      "requires": {
+        "sparkles": "^1.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "3.0.11",
+      "resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+      "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+      "dev": true,
+      "requires": {
+        "natives": "^1.1.0"
+      }
+    },
+    "graceful-readlink": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+      "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+      "dev": true
+    },
+    "gulp": {
+      "version": "3.9.1",
+      "resolved": "http://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
+      "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
+      "dev": true,
+      "requires": {
+        "archy": "^1.0.0",
+        "chalk": "^1.0.0",
+        "deprecated": "^0.0.1",
+        "gulp-util": "^3.0.0",
+        "interpret": "^1.0.0",
+        "liftoff": "^2.1.0",
+        "minimist": "^1.1.0",
+        "orchestrator": "^0.3.0",
+        "pretty-hrtime": "^1.0.0",
+        "semver": "^4.1.0",
+        "tildify": "^1.0.0",
+        "v8flags": "^2.0.2",
+        "vinyl-fs": "^0.3.0"
+      }
+    },
+    "gulp-clean-css": {
+      "version": "2.3.2",
+      "resolved": "http://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-2.3.2.tgz",
+      "integrity": "sha1-dBB2nER0wSzNVemOp0sYmNQorNA=",
+      "dev": true,
+      "requires": {
+        "clean-css": "^3.4.23",
+        "gulp-util": "^3.0.7",
+        "object-assign": "^4.1.0",
+        "through2": "^2.0.3",
+        "vinyl-sourcemaps-apply": "^0.2.1"
+      },
+      "dependencies": {
+        "object-assign": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+          "dev": true
+        }
+      }
+    },
+    "gulp-rename": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz",
+      "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
+      "dev": true
+    },
+    "gulp-sourcemaps": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz",
+      "integrity": "sha1-tDfR89mAzyboEYSCNxjOFa5ll7Y=",
+      "dev": true,
+      "requires": {
+        "@gulp-sourcemaps/map-sources": "1.X",
+        "acorn": "4.X",
+        "convert-source-map": "1.X",
+        "css": "2.X",
+        "debug-fabulous": "0.0.X",
+        "detect-newline": "2.X",
+        "graceful-fs": "4.X",
+        "source-map": "~0.6.0",
+        "strip-bom": "2.X",
+        "through2": "2.X",
+        "vinyl": "1.X"
+      },
+      "dependencies": {
+        "graceful-fs": {
+          "version": "4.1.15",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "strip-bom": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+          "dev": true,
+          "requires": {
+            "is-utf8": "^0.2.0"
+          }
+        },
+        "vinyl": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+          "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
+          "dev": true,
+          "requires": {
+            "clone": "^1.0.0",
+            "clone-stats": "^0.0.1",
+            "replace-ext": "0.0.1"
+          }
+        }
+      }
+    },
+    "gulp-uglify": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-1.5.4.tgz",
+      "integrity": "sha1-UkeI2HZm0J+dDCH7IXf5ADmmWMk=",
+      "dev": true,
+      "requires": {
+        "deap": "^1.0.0",
+        "fancy-log": "^1.0.0",
+        "gulp-util": "^3.0.0",
+        "isobject": "^2.0.0",
+        "through2": "^2.0.0",
+        "uglify-js": "2.6.4",
+        "uglify-save-license": "^0.4.1",
+        "vinyl-sourcemaps-apply": "^0.2.0"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+          "dev": true
+        },
+        "isobject": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+          "dev": true,
+          "requires": {
+            "isarray": "1.0.0"
+          }
+        }
+      }
+    },
+    "gulp-util": {
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
+      "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
+      "dev": true,
+      "requires": {
+        "array-differ": "^1.0.0",
+        "array-uniq": "^1.0.2",
+        "beeper": "^1.0.0",
+        "chalk": "^1.0.0",
+        "dateformat": "^2.0.0",
+        "fancy-log": "^1.1.0",
+        "gulplog": "^1.0.0",
+        "has-gulplog": "^0.1.0",
+        "lodash._reescape": "^3.0.0",
+        "lodash._reevaluate": "^3.0.0",
+        "lodash._reinterpolate": "^3.0.0",
+        "lodash.template": "^3.0.0",
+        "minimist": "^1.1.0",
+        "multipipe": "^0.1.2",
+        "object-assign": "^3.0.0",
+        "replace-ext": "0.0.1",
+        "through2": "^2.0.0",
+        "vinyl": "^0.5.0"
+      }
+    },
+    "gulplog": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+      "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+      "dev": true,
+      "requires": {
+        "glogg": "^1.0.0"
+      }
+    },
+    "has-ansi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "has-gulplog": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+      "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+      "dev": true,
+      "requires": {
+        "sparkles": "^1.0.0"
+      }
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "dev": true,
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "homedir-polyfill": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
+      "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
+      "dev": true,
+      "requires": {
+        "parse-passwd": "^1.0.0"
+      }
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dev": true,
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+      "dev": true
+    },
+    "ini": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+      "dev": true
+    },
+    "interpret": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+      "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+      "dev": true
+    },
+    "is-absolute": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+      "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+      "dev": true,
+      "requires": {
+        "is-relative": "^1.0.0",
+        "is-windows": "^1.0.1"
+      }
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+      "dev": true
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+      "dev": true,
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+      "dev": true
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+      "dev": true
+    },
+    "is-glob": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+      "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+      "dev": true,
+      "requires": {
+        "is-extglob": "^2.1.0"
+      }
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "is-relative": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+      "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+      "dev": true,
+      "requires": {
+        "is-unc-path": "^1.0.0"
+      }
+    },
+    "is-unc-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+      "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+      "dev": true,
+      "requires": {
+        "unc-path-regex": "^0.1.2"
+      }
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+      "dev": true
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+      "dev": true
+    },
+    "isarray": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+      "dev": true
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+      "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+      "dev": true
+    },
+    "lazy-cache": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+      "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+      "dev": true
+    },
+    "lazy-debug-legacy": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz",
+      "integrity": "sha1-U3cWwHduTPeePtG2IfdljCkRsbE=",
+      "dev": true
+    },
+    "liftoff": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
+      "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
+      "dev": true,
+      "requires": {
+        "extend": "^3.0.0",
+        "findup-sync": "^2.0.0",
+        "fined": "^1.0.1",
+        "flagged-respawn": "^1.0.0",
+        "is-plain-object": "^2.0.4",
+        "object.map": "^1.0.0",
+        "rechoir": "^0.6.2",
+        "resolve": "^1.1.7"
+      }
+    },
+    "lodash": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+      "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
+      "dev": true
+    },
+    "lodash._basecopy": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+      "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+      "dev": true
+    },
+    "lodash._basetostring": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+      "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
+      "dev": true
+    },
+    "lodash._basevalues": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+      "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
+      "dev": true
+    },
+    "lodash._getnative": {
+      "version": "3.9.1",
+      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+      "dev": true
+    },
+    "lodash._isiterateecall": {
+      "version": "3.0.9",
+      "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+      "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+      "dev": true
+    },
+    "lodash._reescape": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+      "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
+      "dev": true
+    },
+    "lodash._reevaluate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+      "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
+      "dev": true
+    },
+    "lodash._reinterpolate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+      "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+      "dev": true
+    },
+    "lodash._root": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+      "dev": true
+    },
+    "lodash.escape": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+      "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+      "dev": true,
+      "requires": {
+        "lodash._root": "^3.0.0"
+      }
+    },
+    "lodash.isarguments": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+      "dev": true
+    },
+    "lodash.isarray": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+      "dev": true
+    },
+    "lodash.keys": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+      "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+      "dev": true,
+      "requires": {
+        "lodash._getnative": "^3.0.0",
+        "lodash.isarguments": "^3.0.0",
+        "lodash.isarray": "^3.0.0"
+      }
+    },
+    "lodash.restparam": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+      "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+      "dev": true
+    },
+    "lodash.template": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+      "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+      "dev": true,
+      "requires": {
+        "lodash._basecopy": "^3.0.0",
+        "lodash._basetostring": "^3.0.0",
+        "lodash._basevalues": "^3.0.0",
+        "lodash._isiterateecall": "^3.0.0",
+        "lodash._reinterpolate": "^3.0.0",
+        "lodash.escape": "^3.0.0",
+        "lodash.keys": "^3.0.0",
+        "lodash.restparam": "^3.0.0",
+        "lodash.templatesettings": "^3.0.0"
+      }
+    },
+    "lodash.templatesettings": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+      "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+      "dev": true,
+      "requires": {
+        "lodash._reinterpolate": "^3.0.0",
+        "lodash.escape": "^3.0.0"
+      }
+    },
+    "longest": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+      "dev": true
+    },
+    "lru-cache": {
+      "version": "2.7.3",
+      "resolved": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+      "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+      "dev": true
+    },
+    "make-iterator": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+      "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^6.0.2"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+      "dev": true
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "dev": true,
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      }
+    },
+    "minimatch": {
+      "version": "2.0.10",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+      "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.0.0"
+      }
+    },
+    "minimist": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+      "dev": true
+    },
+    "mixin-deep": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+      "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "dev": true,
+      "requires": {
+        "minimist": "0.0.8"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "0.0.8",
+          "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+          "dev": true
+        }
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+      "dev": true
+    },
+    "multipipe": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+      "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+      "dev": true,
+      "requires": {
+        "duplexer2": "0.0.2"
+      }
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      }
+    },
+    "natives": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
+      "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==",
+      "dev": true
+    },
+    "normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "dev": true,
+      "requires": {
+        "remove-trailing-separator": "^1.0.1"
+      }
+    },
+    "object-assign": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+      "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+      "dev": true
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "dev": true,
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.defaults": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+      "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+      "dev": true,
+      "requires": {
+        "array-each": "^1.0.1",
+        "array-slice": "^1.0.0",
+        "for-own": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.map": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+      "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+      "dev": true,
+      "requires": {
+        "for-own": "^1.0.0",
+        "make-iterator": "^1.0.0"
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "once": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+      "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+      "dev": true,
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "orchestrator": {
+      "version": "0.3.8",
+      "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
+      "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "~0.1.5",
+        "sequencify": "~0.0.7",
+        "stream-consume": "~0.1.0"
+      }
+    },
+    "ordered-read-streams": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
+      "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
+      "dev": true
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+      "dev": true
+    },
+    "parse-filepath": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+      "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
+      "dev": true,
+      "requires": {
+        "is-absolute": "^1.0.0",
+        "map-cache": "^0.2.0",
+        "path-root": "^0.1.1"
+      }
+    },
+    "parse-passwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+      "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+      "dev": true
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+      "dev": true
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+      "dev": true
+    },
+    "path-root": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+      "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+      "dev": true,
+      "requires": {
+        "path-root-regex": "^0.1.0"
+      }
+    },
+    "path-root-regex": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+      "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+      "dev": true
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+      "dev": true
+    },
+    "pretty-hrtime": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
+      "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+      "dev": true
+    },
+    "readable-stream": {
+      "version": "1.1.14",
+      "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+      "dev": true,
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.1",
+        "isarray": "0.0.1",
+        "string_decoder": "~0.10.x"
+      }
+    },
+    "rechoir": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+      "dev": true,
+      "requires": {
+        "resolve": "^1.1.6"
+      }
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "repeat-element": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "replace-ext": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+      "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+      "dev": true
+    },
+    "resolve": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
+      "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+      "dev": true,
+      "requires": {
+        "path-parse": "^1.0.5"
+      }
+    },
+    "resolve-dir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+      "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+      "dev": true,
+      "requires": {
+        "expand-tilde": "^2.0.0",
+        "global-modules": "^1.0.0"
+      }
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+      "dev": true
+    },
+    "right-align": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+      "dev": true,
+      "requires": {
+        "align-text": "^0.1.1"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "dev": true
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "dev": true,
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "semver": {
+      "version": "4.3.6",
+      "resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+      "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+      "dev": true
+    },
+    "sequencify": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
+      "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=",
+      "dev": true
+    },
+    "set-value": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+      "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "sigmund": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+      "dev": true
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+      "dev": true,
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.2.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "source-map": {
+      "version": "0.5.7",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+      "dev": true
+    },
+    "source-map-resolve": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+      "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+      "dev": true,
+      "requires": {
+        "atob": "^2.1.1",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+      "dev": true
+    },
+    "sparkles": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
+      "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
+      "dev": true
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      }
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "dev": true,
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "stream-consume": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
+      "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==",
+      "dev": true
+    },
+    "string_decoder": {
+      "version": "0.10.31",
+      "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+      "dev": true
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "strip-bom": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
+      "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
+      "dev": true,
+      "requires": {
+        "first-chunk-stream": "^1.0.0",
+        "is-utf8": "^0.2.0"
+      }
+    },
+    "supports-color": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+      "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+      "dev": true
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "2.3.6",
+          "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+          "dev": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "tildify": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+      "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.0"
+      }
+    },
+    "time-stamp": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
+      "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "uglify-js": {
+      "version": "2.6.4",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
+      "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=",
+      "dev": true,
+      "requires": {
+        "async": "~0.2.6",
+        "source-map": "~0.5.1",
+        "uglify-to-browserify": "~1.0.0",
+        "yargs": "~3.10.0"
+      }
+    },
+    "uglify-save-license": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz",
+      "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=",
+      "dev": true
+    },
+    "uglify-to-browserify": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+      "dev": true
+    },
+    "unc-path-regex": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+      "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
+      "dev": true
+    },
+    "union-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+      "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^0.4.3"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "set-value": {
+          "version": "0.4.3",
+          "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+          "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+          "dev": true,
+          "requires": {
+            "extend-shallow": "^2.0.1",
+            "is-extendable": "^0.1.1",
+            "is-plain-object": "^2.0.1",
+            "to-object-path": "^0.3.0"
+          }
+        }
+      }
+    },
+    "unique-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
+      "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=",
+      "dev": true
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "dev": true,
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "dev": true,
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "dev": true,
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+          "dev": true
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+          "dev": true
+        }
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+      "dev": true
+    },
+    "user-home": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+      "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+      "dev": true
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "v8flags": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
+      "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+      "dev": true,
+      "requires": {
+        "user-home": "^1.1.1"
+      }
+    },
+    "vinyl": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+      "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+      "dev": true,
+      "requires": {
+        "clone": "^1.0.0",
+        "clone-stats": "^0.0.1",
+        "replace-ext": "0.0.1"
+      }
+    },
+    "vinyl-fs": {
+      "version": "0.3.14",
+      "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
+      "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
+      "dev": true,
+      "requires": {
+        "defaults": "^1.0.0",
+        "glob-stream": "^3.1.5",
+        "glob-watcher": "^0.0.6",
+        "graceful-fs": "^3.0.0",
+        "mkdirp": "^0.5.0",
+        "strip-bom": "^1.0.0",
+        "through2": "^0.6.1",
+        "vinyl": "^0.4.0"
+      },
+      "dependencies": {
+        "clone": {
+          "version": "0.2.0",
+          "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+          "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "1.0.34",
+          "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+          "dev": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.1",
+            "isarray": "0.0.1",
+            "string_decoder": "~0.10.x"
+          }
+        },
+        "through2": {
+          "version": "0.6.5",
+          "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+          "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+          "dev": true,
+          "requires": {
+            "readable-stream": ">=1.0.33-1 <1.1.0-0",
+            "xtend": ">=4.0.0 <4.1.0-0"
+          }
+        },
+        "vinyl": {
+          "version": "0.4.6",
+          "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+          "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+          "dev": true,
+          "requires": {
+            "clone": "^0.2.0",
+            "clone-stats": "^0.0.1"
+          }
+        }
+      }
+    },
+    "vinyl-sourcemaps-apply": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+      "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+      "dev": true,
+      "requires": {
+        "source-map": "^0.5.1"
+      }
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "window-size": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+      "dev": true
+    },
+    "wordwrap": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+      "dev": true
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "dev": true
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+      "dev": true
+    },
+    "yargs": {
+      "version": "3.10.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+      "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+      "dev": true,
+      "requires": {
+        "camelcase": "^1.0.2",
+        "cliui": "^2.1.0",
+        "decamelize": "^1.0.0",
+        "window-size": "0.1.0"
+      }
+    }
+  }
+}
diff --git a/package.json b/package.json
index ed7e393..d91afeb 100644
--- a/package.json
+++ b/package.json
@@ -29,9 +29,9 @@
   "devDependencies": {
     "gulp": "^3.9.0",
     "gulp-clean-css": "^2.0.8",
-    "gulp-rename": "^1.2.2",
+    "gulp-rename": "^1.4.0",
     "gulp-sass": "^2.0.4",
-    "gulp-sourcemaps": "^1.6.0",
-    "gulp-uglify": "^1.4.1"
+    "gulp-sourcemaps": "^1.12.1",
+    "gulp-uglify": "^1.5.4"
   }
 }

From bfe5e73430c9cd0d217247265c80ff68e23b0415 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alvaro=20Trigo=20Lo=CC=81pez?= <atrigol@gmail.com>
Date: Tue, 29 Jan 2019 11:18:47 +0100
Subject: [PATCH 15/15] - Updating package.json version

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index d91afeb..e46c78c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pagepiling.js",
-  "version": "1.5.5",
+  "version": "1.5.6",
   "description": "Create a scrolling pile of sections",
   "main": "jquery.pagepiling.js",
   "scripts": {
