diff --git a/bower.json b/bower.json
index b93602b..6bdbf26 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
 {
   "name": "multiscroll.js",
-  "version": "0.1.6",
+  "version": "0.1.7",
   "homepage": "http://alvarotrigo.com/multiScroll/",
   "authors": [
     "Alvaro Trigo https://github.com/alvarotrigo"
diff --git a/jquery.multiscroll.js b/jquery.multiscroll.js
index a4f3051..e977636 100644
--- a/jquery.multiscroll.js
+++ b/jquery.multiscroll.js
@@ -1,5 +1,5 @@
 /**
- * multiscroll.js 0.1.6 Beta
+ * multiscroll.js 0.1.7 Beta
  * https://github.com/alvarotrigo/multiscroll.js
  * MIT licensed
  *
@@ -7,7 +7,10 @@
  */
 
 (function($) {
+
 	$.fn.multiscroll = function(options) {
+		var MS = $.fn.multiscroll;
+
 		// Create some defaults, extending them with any options that were provided
 		options = $.extend({
 			'verticalCentered' : true,
@@ -42,13 +45,12 @@
 			'afterResize': null
 		}, options);
 
-
 		//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;
 
-		var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0));
+		var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
 
 		// adding class namef for right and left blocks
 		if (options.rightSelector !== '.ms-right') {
@@ -174,11 +176,18 @@
 				$('.ms-left').find('.ms-section').first().addClass('active');
 			}
 
+			//vertical centered of the navigation + first bullet active
+			if(options.navigation){
+				nav.css('margin-top', '-' + (nav.height()/2) + 'px');
+			}
 			$.isFunction( options.afterRender ) && options.afterRender.call( this);
 
 			//scrolling to the defined active section and adjusting right and left panels
 			silentScroll();
 
+			//setting the class for the body element
+			setBodyClass();
+
 			$(window).on('load', function() {
 				scrollToAnchor();
 			});
@@ -206,44 +215,71 @@
 
 
 		/**
-		 * Sliding with arrow keys, both, vertical and horizontal
-		 */
-		$(document).keydown(function(e) {
-			if(e.which == 40 || e.which == 38){
-				e.preventDefault();
-			}
+		* Sliding with arrow keys, both, vertical and horizontal
+		*/
+		$(document).keydown(keydownHandler);
 
-			//Moving the main page with the keyboard arrows if keyboard scrolling is enabled
-			if (options.keyboardScrolling && !isMoving) {
-				switch (e.which) {
-					//up
-					case 38:
-					case 33:
-						$.fn.multiscroll.moveSectionUp();
-						break;
 
-					//down
-					case 40:
-					case 34:
-						$.fn.multiscroll.moveSectionDown();
-						break;
+		var keydownId;
+		function keydownHandler(e) {
+			clearTimeout(keydownId);
 
-					//Home
-					case 36:
-						$.fn.multiscroll.moveTo(1);
-						break;
+			var activeElement = $(document.activeElement);
 
-					//End
-					case 35:
-						$.fn.multiscroll.moveTo( $('.ms-left .ms-section').length );
-						break;
+			if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&
+				options.keyboardScrolling){
+				var keyCode = e.which;
 
-					default:
-						return; // exit this handler for other keys
+				//preventing the scroll with arrow keys & spacebar & Page Up & Down keys
+				var keyControls = [40, 38, 32, 33, 34];
+				if($.inArray(keyCode, keyControls) > -1){
+					e.preventDefault();
 				}
+
+				keydownId = setTimeout(function(){
+					onkeydown(e);
+				},150);
 			}
-		});
+		}
+
+		/**
+		 * Sliding with arrow keys, both, vertical and horizontal
+		 */
+		function onkeydown(e){
+			var shiftPressed = e.shiftKey;
+
+			switch (e.which) {
+				//up
+				case 38:
+				case 33:
+					MS.moveSectionUp();
+					break;
+
+				//down
+				case 32: //spacebar
+					if(shiftPressed){
+						MS.moveSectionUp();
+						break;
+					}
+				case 40:
+				case 34:
+					MS.moveSectionDown();
+					break;
+
+				//Home
+				case 36:
+					MS.moveTo(1);
+					break;
 
+				//End
+				case 35:
+					MS.moveTo( $('.ms-left .ms-section').length);
+					break;
+
+				default:
+					return; // exit this handler for other keys
+			}
+		}
 
 		/**
 		 * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)
@@ -278,11 +314,11 @@
 
 		if(options.normalScrollElements){
 			$(document).on('mouseenter', options.normalScrollElements, function () {
-				$.fn.multiscroll.setMouseWheelScrolling(false);
+				MS.setMouseWheelScrolling(false);
 			});
 
 			$(document).on('mouseleave', options.normalScrollElements, function(){
-				$.fn.multiscroll.setMouseWheelScrolling(true);
+				MS.setMouseWheelScrolling(true);
 			});
 		}
 
@@ -313,7 +349,7 @@
 			}
 		}
 
-		$.fn.multiscroll.moveSectionUp = function(){
+		MS.moveSectionUp = function(){
 			var prev = $('.ms-left .ms-section.active').prev('.ms-section');
 
 			if(!prev.length && options.loopTop){
@@ -325,7 +361,7 @@
 			}
 		};
 
-		$.fn.multiscroll.moveSectionDown = function (){
+		MS.moveSectionDown = function (){
 			var next = $('.ms-left .ms-section.active').next('.ms-section');
 
 			if(!next.length && options.loopBottom ){
@@ -337,7 +373,7 @@
 			}
 		};
 
-		$.fn.multiscroll.moveTo = function (section){
+		MS.moveTo = function (section){
 			var destiny = '';
 
 			if(isNaN(section)){
@@ -362,8 +398,6 @@
 			//more than once if the page is scrolling
 			isMoving = true;
 
-			setURLHash(anchorLink);
-
 			var topPos = {
 				'left' : leftDestination.position().top,
 				'right': rightDestination.position().top
@@ -372,6 +406,8 @@
 			rightDestination.addClass('active').siblings().removeClass('active');
 			leftDestination.addClass('active').siblings().removeClass('active');
 
+			setURLHash(anchorLink);
+
 			// Use CSS3 translate functionality or...
 			if (options.css3){
 				//callback (onLeave)
@@ -459,12 +495,12 @@
 
 				//scrolling down?
 				if (delta < 0) {
-					$.fn.multiscroll.moveSectionDown();
+					MS.moveSectionDown();
 				}
 
 				//scrolling up?
 				else {
-					$.fn.multiscroll.moveSectionUp();
+					MS.moveSectionUp();
 				}
 			}
 
@@ -541,6 +577,32 @@
 				location.hash = anchorLink;
 			}
 
+			setBodyClass();
+		}
+
+		 /**
+		* Sets a class for the body of the page depending on the active section / slide
+		*/
+		function setBodyClass(){
+			var section = $('.ms-left .ms-section.active');
+			var sectionAnchor = section.data('anchor');
+			var sectionIndex = section.index();
+
+			var text = String(sectionIndex);
+
+			if(options.anchors.length){
+				text = sectionAnchor;
+			}
+
+			//changing slash for dash to make it a valid CSS style
+			text = text.replace('/', '-').replace('#','');
+
+			//removing previous anchor classes
+			var classRe = new RegExp('\\b\\s?' + 'ms-viewing' + '-[^\\s]+\\b', "g");
+			$('body')[0].className = $('body')[0].className.replace(classRe, '');
+
+			//adding the current anchor
+			$('body').addClass('ms-viewing-' + text);
 		}
 
 
@@ -613,14 +675,14 @@
 		/**
 		* Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
 		*/
-		$.fn.multiscroll.setKeyboardScrolling = function (value){
+		MS.setKeyboardScrolling = function (value){
 			options.keyboardScrolling = value;
 		};
 
 		/**
 		* Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
 		*/
-		$.fn.multiscroll.setMouseWheelScrolling = function (value){
+		MS.setMouseWheelScrolling = function (value){
 			if(value){
 				addMouseWheelHandler();
 			}else{
@@ -631,7 +693,7 @@
 		/**
 		* Defines the scrolling speed
 		*/
-		$.fn.multiscroll.setScrollingSpeed = function(value){
+		MS.setScrollingSpeed = function(value){
 			options.scrollingSpeed = value;
 		};
 
@@ -651,39 +713,53 @@
 		function touchMoveHandler(event){
 			var e = event.originalEvent;
 
-			//preventing the easing on iOS devices
-			event.preventDefault();
+			if(isReallyTouch(e)){
+				//preventing the easing on iOS devices
+				event.preventDefault();
 
-			var activeSection = $('.ms-left .ms-section.active');
+				var activeSection = $('.ms-left .ms-section.active');
 
-			if (!isMoving) { //if theres any #
-				var touchEvents = getEventsPage(e);
-				touchEndY = touchEvents['y'];
-				touchEndX = touchEvents['x'];
+				if (!isMoving) { //if theres any #
+					var touchEvents = getEventsPage(e);
+					touchEndY = touchEvents['y'];
+					touchEndX = touchEvents['x'];
 
 
-				//is the movement greater than the minimum resistance to scroll?
-				if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
+					//is the movement greater than the minimum resistance to scroll?
+					if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
 
-					if (touchStartY > touchEndY) {
-						$.fn.multiscroll.moveSectionDown();
+						if (touchStartY > touchEndY) {
+							MS.moveSectionDown();
 
-					} else if (touchEndY > touchStartY) {
-						$.fn.multiscroll.moveSectionUp();
+						} else if (touchEndY > touchStartY) {
+							MS.moveSectionUp();
+						}
 					}
 				}
 			}
 		}
 
+		/**
+		* 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';
+		}
+
 
 		/**
 		* Handler to get he coordinates of the starting touch
 		*/
 		function touchStartHandler(event){
 			var e = event.originalEvent;
-			var touchEvents = getEventsPage(e);
-			touchStartY = touchEvents['y'];
-			touchStartX = touchEvents['x'];
+
+			if(isReallyTouch(e)){
+				var touchEvents = getEventsPage(e);
+				touchStartY = touchEvents['y'];
+				touchStartX = touchEvents['x'];
+			}
 		}
 
 
@@ -738,13 +814,15 @@
 		* https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
 		*/
 		function getEventsPage(e){
-			var events = new Array();
-			if (window.navigator.msPointerEnabled){
-				events['y'] = e.pageY;
-				events['x'] = e.pageX;
-			}else{
-				events['y'] = e.touches[0].pageY;
-				events['x'] =  e.touches[0].pageX;
+			var events = [];
+
+			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);
+
+			//in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008
+			if(isTouch && isReallyTouch(e)){
+				events.y = e.touches[0].pageY;
+				events.x = e.touches[0].pageX;
 			}
 
 			return events;
@@ -753,9 +831,9 @@
 		/**
 		* Destroy multiscroll.js plugin's events
 		*/
-		$.fn.multiscroll.destroy = function() {
-			$.fn.multiscroll.setKeyboardScrolling(false);
-			$.fn.multiscroll.setMouseWheelScrolling(false);
+		MS.destroy = function() {
+			MS.setKeyboardScrolling(false);
+			MS.setMouseWheelScrolling(false);
 
 			$(window)
 				.off('hashchange', hashChangeHandler)
@@ -770,9 +848,9 @@
 		/**
 		* Build multiscroll.js plugin's events after destroy
 		*/
-		$.fn.multiscroll.build = function() {
-			$.fn.multiscroll.setKeyboardScrolling(true);
-			$.fn.multiscroll.setMouseWheelScrolling(true);
+		MS.build = function() {
+			MS.setKeyboardScrolling(true);
+			MS.setMouseWheelScrolling(true);
 
 			$(window)
 				.on('hashchange', hashChangeHandler)
diff --git a/jquery.multiscroll.min.js b/jquery.multiscroll.min.js
index 309e852..c007498 100644
--- a/jquery.multiscroll.min.js
+++ b/jquery.multiscroll.min.js
@@ -1,8 +1,26 @@
 /**
- * multiscroll.js 0.1.6 Beta
+ * multiscroll.js 0.1.7 Beta
  * https://github.com/alvarotrigo/multiscroll.js
  * MIT licensed
  *
  * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
  */
-(function(a){a.fn.multiscroll=function(b){function q(){var c=window.location.hash.replace("#","");if(c.length){var b=a(".ms-left").find('[data-anchor="'+c+'"]');"undefined"!==typeof lastScrolledDestiny&&c===lastScrolledDestiny||e(b)}}function r(){t=a(window).height();a(".ms-tableCell").each(function(){a(this).css({height:u(a(this).parent())})});v();a.isFunction(b.afterResize)&&b.afterResize.call(this)}function v(){b.css3?(m(a(".ms-left"),"translate3d(0px, -"+a(".ms-left").find(".ms-section.active").position().top+ "px, 0px)",!1),m(a(".ms-right"),"translate3d(0px, -"+a(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(a(".ms-left").css("top",-a(".ms-left").find(".ms-section.active").position().top),a(".ms-right").css("top",-a(".ms-right").find(".ms-section.active").position().top))}function e(c){var d=c.index(),w=a(".ms-right").find(".ms-section").eq(z-1-d),f=c.data("anchor"),e=a(".ms-left .ms-section.active").index()+1,g=A(c);h=!0;b.anchors.length&&(location.hash=f);var k={left:c.position().top, right:w.position().top};w.addClass("active").siblings().removeClass("active");c.addClass("active").siblings().removeClass("active");b.css3?(a.isFunction(b.onLeave)&&b.onLeave.call(this,e,d+1,g),c="translate3d(0px, -"+k.left+"px, 0px)",k="translate3d(0px, -"+k.right+"px, 0px)",m(a(".ms-left"),c,!0),m(a(".ms-right"),k,!0),setTimeout(function(){a.isFunction(b.afterLoad)&&b.afterLoad.call(this,f,d+1);setTimeout(function(){h=!1},600)},b.scrollingSpeed)):(a.isFunction(b.onLeave)&&b.onLeave.call(this,e, d+1,g),a(".ms-left").animate({top:-k.left},b.scrollingSpeed,b.easing,function(){a.isFunction(b.afterLoad)&&b.afterLoad.call(this,f,d+1);setTimeout(function(){h=!1},600)}),a(".ms-right").animate({top:-k.right},b.scrollingSpeed,b.easing));lastScrolledDestiny=f;B(f);C(f,d)}function x(){document.addEventListener?(document.addEventListener("mousewheel",g,!1),document.addEventListener("wheel",g,!1)):document.attachEvent("onmousewheel",g)}function g(c){c=window.event||c;c=Math.max(-1,Math.min(1,c.wheelDelta|| -c.deltaY||-c.detail));h||(0>c?a.fn.multiscroll.moveSectionDown():a.fn.multiscroll.moveSectionUp());return!1}function m(a,b,e){a.toggleClass("ms-easing",e);a.css({"-webkit-transform":b,"-moz-transform":b,"-ms-transform":b,transform:b})}function C(c,d){b.navigation&&(a("#multiscroll-nav").find(".active").removeClass("active"),c?a("#multiscroll-nav").find('a[href="#'+c+'"]').addClass("active"):a("#multiscroll-nav").find("li").eq(d).find("a").addClass("active"))}function B(c){b.menu&&(a(b.menu).find(".active").removeClass("active"), a(b.menu).find('[data-menuanchor="'+c+'"]').addClass("active"))}function A(c){var b=a(".ms-left .ms-section.active").index();c=c.index();return b>c?"up":"down"}function D(){var a=document.createElement("p"),b,e={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(a,null);for(var f in e)void 0!==a.style[f]&&(a.style[f]="translate3d(1px,1px,1px)",b=window.getComputedStyle(a).getPropertyValue(e[f])); document.body.removeChild(a);return void 0!==b&&0<b.length&&"none"!==b}function u(a){var d=t;if(b.paddingTop||b.paddingBottom)a=parseInt(a.css("padding-top"))+parseInt(a.css("padding-bottom")),d=t-a;return d}function E(c){var d=c.originalEvent;c.preventDefault();a(".ms-left .ms-section.active");h||(n=y(d).y,Math.abs(p-n)>a(window).height()/100*b.touchSensitivity&&(p>n?a.fn.multiscroll.moveSectionDown():n>p&&a.fn.multiscroll.moveSectionUp()))}function F(a){p=y(a.originalEvent).y}function y(a){var b= [];window.navigator.msPointerEnabled?(b.y=a.pageY,b.x=a.pageX):(b.y=a.touches[0].pageY,b.x=a.touches[0].pageX);return b}b=a.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,sectionSelector:".ms-section",leftSelector:".ms-left", rightSelector:".ms-right",afterLoad:null,onLeave:null,afterRender:null,afterResize:null},b);var G="ontouchstart"in window||0<navigator.msMaxTouchPoints;".ms-right"!==b.rightSelector&&a(b.rightSelector).addClass("ms-right");".ms-left"!==b.leftSelector&&a(b.leftSelector).addClass("ms-left");var z=a(".ms-left").find(".ms-section").length,h=!1,l,t=a(window).height();x();G&&(MSPointer=window.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"},a(document).off("touchstart "+ MSPointer.down).on("touchstart "+MSPointer.down,F),a(document).off("touchmove "+MSPointer.move).on("touchmove "+MSPointer.move,E));b.css3&&(b.css3=D());a("html, body").css({overflow:"hidden",height:"100%"});".ms-section"!==b.sectionSelector&&a(b.sectionSelector).each(function(){a(this).addClass("ms-section")});b.navigation&&(a("body").append('<div id="multiscroll-nav"><ul></ul></div>'),l=a("#multiscroll-nav"),l.css("color",b.navigationColor),l.addClass(b.navigationPosition));a(".ms-right, .ms-left").css({width:"50%", position:"absolute",height:"100%","-ms-touch-action":"none"});a(".ms-right").css({right:"1px",top:"0","-ms-touch-action":"none","touch-action":"none"});a(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"});a(".ms-left .ms-section, .ms-right .ms-section").each(function(){var c=a(this).index();(b.paddingTop||b.paddingBottom)&&a(this).css("padding",b.paddingTop+" 0 "+b.paddingBottom+" 0");"undefined"!==typeof b.sectionsColor[c]&&a(this).css("background-color",b.sectionsColor[c]); "undefined"!==typeof b.anchors[c]&&a(this).attr("data-anchor",b.anchors[c]);if(b.verticalCentered){var d=a(this);d.addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+u(d)+'px" />')}a(this).closest(".ms-left").length&&b.navigation&&(d="",b.anchors.length&&(d=b.anchors[c]),c=b.navigationTooltips[c],"undefined"===typeof c&&(c=""),b.navigation&&l.find("ul").append('<li data-tooltip="'+c+'"><a href="#'+d+'"><span></span></a></li>'))});a(".ms-right").html(a(".ms-right").find(".ms-section").get().reverse()); a(".ms-left .ms-section, .ms-right .ms-section").each(function(){var c=a(this).index();a(this).css({height:"100%"});!c&&b.navigation&&l.find("li").eq(c).find("a").addClass("active")}).promise().done(function(){a(".ms-left .ms-section.active").length||(a(".ms-right").find(".ms-section").last().addClass("active"),a(".ms-left").find(".ms-section").first().addClass("active"));a.isFunction(b.afterRender)&&b.afterRender.call(this);v();a(window).on("load",function(){var b=window.location.hash.replace("#", ""),d=a('.ms-left .ms-section[data-anchor="'+b+'"]');b.length&&e(d)})});a(window).on("hashchange",q);a(document).keydown(function(c){40!=c.which&&38!=c.which||c.preventDefault();if(b.keyboardScrolling&&!h)switch(c.which){case 38:case 33:a.fn.multiscroll.moveSectionUp();break;case 40:case 34:a.fn.multiscroll.moveSectionDown();break;case 36:a.fn.multiscroll.moveTo(1);break;case 35:a.fn.multiscroll.moveTo(a(".ms-left .ms-section").length)}});a(document).mousedown(function(a){if(1==a.button)return a.preventDefault(), !1});a(document).on("click","#multiscroll-nav a",function(b){b.preventDefault();b=a(this).parent().index();e(a(".ms-left .ms-section").eq(b))});a(document).on({mouseenter:function(){var c=a(this).data("tooltip");a('<div class="multiscroll-tooltip '+b.navigationPosition+'">'+c+"</div>").hide().appendTo(a(this)).fadeIn(200)},mouseleave:function(){a(this).find(".multiscroll-tooltip").fadeOut(200,function(){a(this).remove()})}},"#multiscroll-nav li");b.normalScrollElements&&(a(document).on("mouseenter", b.normalScrollElements,function(){a.fn.multiscroll.setMouseWheelScrolling(!1)}),a(document).on("mouseleave",b.normalScrollElements,function(){a.fn.multiscroll.setMouseWheelScrolling(!0)}));a(window).on("resize",r);a.fn.multiscroll.moveSectionUp=function(){var c=a(".ms-left .ms-section.active").prev(".ms-section");!c.length&&b.loopTop&&(c=a(".ms-left .ms-section").last());c.length&&e(c)};a.fn.multiscroll.moveSectionDown=function(){var c=a(".ms-left .ms-section.active").next(".ms-section");!c.length&& b.loopBottom&&(c=a(".ms-left .ms-section").first());c.length&&e(c)};a.fn.multiscroll.moveTo=function(b){var d="",d=isNaN(b)?a('.ms-left [data-anchor="'+b+'"]'):a(".ms-left .ms-section").eq(b-1);e(d)};a.fn.multiscroll.setKeyboardScrolling=function(a){b.keyboardScrolling=a};a.fn.multiscroll.setMouseWheelScrolling=function(a){a?x():document.addEventListener?(document.removeEventListener("mousewheel",g,!1),document.removeEventListener("wheel",g,!1)):document.detachEvent("onmousewheel",g)};a.fn.multiscroll.setScrollingSpeed= function(a){b.scrollingSpeed=a};var p=0,n=0;a.fn.multiscroll.destroy=function(){a.fn.multiscroll.setKeyboardScrolling(!1);a.fn.multiscroll.setMouseWheelScrolling(!1);a(window).off("hashchange",q).off("resize",r);a(document).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")};a.fn.multiscroll.build=function(){a.fn.multiscroll.setKeyboardScrolling(!0);a.fn.multiscroll.setMouseWheelScrolling(!0);a(window).on("hashchange",q).on("resize",r); a(document).on("mouseenter","#multiscroll-nav li").on("mouseleave","#multiscroll-nav li").on("click","#multiscroll-nav a")}}})(jQuery);
\ No newline at end of file
+(function(b){b.fn.multiscroll=function(c){function q(){var a=window.location.hash.replace("#","");if(a.length){var c=b(".ms-left").find('[data-anchor="'+a+'"]');"undefined"!==typeof lastScrolledDestiny&&a===lastScrolledDestiny||h(c)}}function r(){t=b(window).height();b(".ms-tableCell").each(function(){b(this).css({height:v(b(this).parent())})});w();b.isFunction(c.afterResize)&&c.afterResize.call(this)}function w(){c.css3?(m(b(".ms-left"),"translate3d(0px, -"+b(".ms-left").find(".ms-section.active").position().top+
+"px, 0px)",!1),m(b(".ms-right"),"translate3d(0px, -"+b(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(b(".ms-left").css("top",-b(".ms-left").find(".ms-section.active").position().top),b(".ms-right").css("top",-b(".ms-right").find(".ms-section.active").position().top))}function h(a){var e=a.index(),d=b(".ms-right").find(".ms-section").eq(C-1-e),k=a.data("anchor"),g=b(".ms-left .ms-section.active").index()+1,h=D(a);l=!0;var f={left:a.position().top,right:d.position().top};d.addClass("active").siblings().removeClass("active");
+a.addClass("active").siblings().removeClass("active");c.anchors.length&&(location.hash=k);x();c.css3?(b.isFunction(c.onLeave)&&c.onLeave.call(this,g,e+1,h),a="translate3d(0px, -"+f.left+"px, 0px)",f="translate3d(0px, -"+f.right+"px, 0px)",m(b(".ms-left"),a,!0),m(b(".ms-right"),f,!0),setTimeout(function(){b.isFunction(c.afterLoad)&&c.afterLoad.call(this,k,e+1);setTimeout(function(){l=!1},600)},c.scrollingSpeed)):(b.isFunction(c.onLeave)&&c.onLeave.call(this,g,e+1,h),b(".ms-left").animate({top:-f.left},
+c.scrollingSpeed,c.easing,function(){b.isFunction(c.afterLoad)&&c.afterLoad.call(this,k,e+1);setTimeout(function(){l=!1},600)}),b(".ms-right").animate({top:-f.right},c.scrollingSpeed,c.easing));lastScrolledDestiny=k;E(k);F(k,e)}function y(){document.addEventListener?(document.addEventListener("mousewheel",f,!1),document.addEventListener("wheel",f,!1)):document.attachEvent("onmousewheel",f)}function f(a){a=window.event||a;a=Math.max(-1,Math.min(1,a.wheelDelta||-a.deltaY||-a.detail));l||(0>a?d.moveSectionDown():
+d.moveSectionUp());return!1}function m(a,b,c){a.toggleClass("ms-easing",c);a.css({"-webkit-transform":b,"-moz-transform":b,"-ms-transform":b,transform:b})}function F(a,e){c.navigation&&(b("#multiscroll-nav").find(".active").removeClass("active"),a?b("#multiscroll-nav").find('a[href="#'+a+'"]').addClass("active"):b("#multiscroll-nav").find("li").eq(e).find("a").addClass("active"))}function E(a){c.menu&&(b(c.menu).find(".active").removeClass("active"),b(c.menu).find('[data-menuanchor="'+a+'"]').addClass("active"))}
+function D(a){var c=b(".ms-left .ms-section.active").index();a=a.index();return c>a?"up":"down"}function x(){var a=b(".ms-left .ms-section.active"),e=a.data("anchor"),a=a.index(),a=String(a);c.anchors.length&&(a=e);a=a.replace("/","-").replace("#","");e=RegExp("\\b\\s?ms-viewing-[^\\s]+\\b","g");b("body")[0].className=b("body")[0].className.replace(e,"");b("body").addClass("ms-viewing-"+a)}function G(){var a=document.createElement("p"),b,c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",
+msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(a,null);for(var d in c)void 0!==a.style[d]&&(a.style[d]="translate3d(1px,1px,1px)",b=window.getComputedStyle(a).getPropertyValue(c[d]));document.body.removeChild(a);return void 0!==b&&0<b.length&&"none"!==b}function v(a){var b=t;if(c.paddingTop||c.paddingBottom)a=parseInt(a.css("padding-top"))+parseInt(a.css("padding-bottom")),b=t-a;return b}function H(a){var e=a.originalEvent;u(e)&&(a.preventDefault(),
+b(".ms-left .ms-section.active"),l||(n=z(e).y,Math.abs(p-n)>b(window).height()/100*c.touchSensitivity&&(p>n?d.moveSectionDown():n>p&&d.moveSectionUp())))}function u(a){return"undefined"===typeof a.pointerType||"mouse"!=a.pointerType}function I(a){a=a.originalEvent;u(a)&&(p=z(a).y)}function z(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;A&&u(a)&&(b.y=a.touches[0].pageY,b.x=
+a.touches[0].pageX);return b}var d=b.fn.multiscroll;c=b.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,sectionSelector:".ms-section",leftSelector:".ms-left",rightSelector:".ms-right",afterLoad:null,onLeave:null,
+afterRender:null,afterResize:null},c);var A="ontouchstart"in window||0<navigator.msMaxTouchPoints||navigator.maxTouchPoints;".ms-right"!==c.rightSelector&&b(c.rightSelector).addClass("ms-right");".ms-left"!==c.leftSelector&&b(c.leftSelector).addClass("ms-left");var C=b(".ms-left").find(".ms-section").length,l=!1,g,t=b(window).height();y();A&&(MSPointer=window.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"},b(document).off("touchstart "+MSPointer.down).on("touchstart "+
+MSPointer.down,I),b(document).off("touchmove "+MSPointer.move).on("touchmove "+MSPointer.move,H));c.css3&&(c.css3=G());b("html, body").css({overflow:"hidden",height:"100%"});".ms-section"!==c.sectionSelector&&b(c.sectionSelector).each(function(){b(this).addClass("ms-section")});c.navigation&&(b("body").append('<div id="multiscroll-nav"><ul></ul></div>'),g=b("#multiscroll-nav"),g.css("color",c.navigationColor),g.addClass(c.navigationPosition));b(".ms-right, .ms-left").css({width:"50%",position:"absolute",
+height:"100%","-ms-touch-action":"none"});b(".ms-right").css({right:"1px",top:"0","-ms-touch-action":"none","touch-action":"none"});b(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"});b(".ms-left .ms-section, .ms-right .ms-section").each(function(){var a=b(this).index();(c.paddingTop||c.paddingBottom)&&b(this).css("padding",c.paddingTop+" 0 "+c.paddingBottom+" 0");"undefined"!==typeof c.sectionsColor[a]&&b(this).css("background-color",c.sectionsColor[a]);"undefined"!==
+typeof c.anchors[a]&&b(this).attr("data-anchor",c.anchors[a]);if(c.verticalCentered){var d=b(this);d.addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+v(d)+'px" />')}b(this).closest(".ms-left").length&&c.navigation&&(d="",c.anchors.length&&(d=c.anchors[a]),a=c.navigationTooltips[a],"undefined"===typeof a&&(a=""),c.navigation&&g.find("ul").append('<li data-tooltip="'+a+'"><a href="#'+d+'"><span></span></a></li>'))});b(".ms-right").html(b(".ms-right").find(".ms-section").get().reverse());
+b(".ms-left .ms-section, .ms-right .ms-section").each(function(){var a=b(this).index();b(this).css({height:"100%"});!a&&c.navigation&&g.find("li").eq(a).find("a").addClass("active")}).promise().done(function(){b(".ms-left .ms-section.active").length||(b(".ms-right").find(".ms-section").last().addClass("active"),b(".ms-left").find(".ms-section").first().addClass("active"));c.navigation&&g.css("margin-top","-"+g.height()/2+"px");b.isFunction(c.afterRender)&&c.afterRender.call(this);w();x();b(window).on("load",
+function(){var a=window.location.hash.replace("#",""),c=b('.ms-left .ms-section[data-anchor="'+a+'"]');a.length&&h(c)})});b(window).on("hashchange",q);b(document).keydown(function(a){clearTimeout(B);var e=b(document.activeElement);e.is("textarea")||e.is("input")||e.is("select")||!c.keyboardScrolling||(-1<b.inArray(a.which,[40,38,32,33,34])&&a.preventDefault(),B=setTimeout(function(){var c=a.shiftKey;switch(a.which){case 38:case 33:d.moveSectionUp();break;case 32:if(c){d.moveSectionUp();break}case 40:case 34:d.moveSectionDown();
+break;case 36:d.moveTo(1);break;case 35:d.moveTo(b(".ms-left .ms-section").length)}},150))});var B;b(document).mousedown(function(a){if(1==a.button)return a.preventDefault(),!1});b(document).on("click","#multiscroll-nav a",function(a){a.preventDefault();a=b(this).parent().index();h(b(".ms-left .ms-section").eq(a))});b(document).on({mouseenter:function(){var a=b(this).data("tooltip");b('<div class="multiscroll-tooltip '+c.navigationPosition+'">'+a+"</div>").hide().appendTo(b(this)).fadeIn(200)},mouseleave:function(){b(this).find(".multiscroll-tooltip").fadeOut(200,
+function(){b(this).remove()})}},"#multiscroll-nav li");c.normalScrollElements&&(b(document).on("mouseenter",c.normalScrollElements,function(){d.setMouseWheelScrolling(!1)}),b(document).on("mouseleave",c.normalScrollElements,function(){d.setMouseWheelScrolling(!0)}));b(window).on("resize",r);d.moveSectionUp=function(){var a=b(".ms-left .ms-section.active").prev(".ms-section");!a.length&&c.loopTop&&(a=b(".ms-left .ms-section").last());a.length&&h(a)};d.moveSectionDown=function(){var a=b(".ms-left .ms-section.active").next(".ms-section");
+!a.length&&c.loopBottom&&(a=b(".ms-left .ms-section").first());a.length&&h(a)};d.moveTo=function(a){var c="",c=isNaN(a)?b('.ms-left [data-anchor="'+a+'"]'):b(".ms-left .ms-section").eq(a-1);h(c)};d.setKeyboardScrolling=function(a){c.keyboardScrolling=a};d.setMouseWheelScrolling=function(a){a?y():document.addEventListener?(document.removeEventListener("mousewheel",f,!1),document.removeEventListener("wheel",f,!1)):document.detachEvent("onmousewheel",f)};d.setScrollingSpeed=function(a){c.scrollingSpeed=
+a};var p=0,n=0;d.destroy=function(){d.setKeyboardScrolling(!1);d.setMouseWheelScrolling(!1);b(window).off("hashchange",q).off("resize",r);b(document).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")};d.build=function(){d.setKeyboardScrolling(!0);d.setMouseWheelScrolling(!0);b(window).on("hashchange",q).on("resize",r);b(document).on("mouseenter","#multiscroll-nav li").on("mouseleave","#multiscroll-nav li").on("click","#multiscroll-nav a")}}})(jQuery);
\ No newline at end of file
