new paused mode feature (closes #144), controls and progress DOM elements are no longer required in HTML
This commit is contained in:
		| @@ -410,6 +410,7 @@ body { | |||||||
| 	margin-top: -320px; | 	margin-top: -320px; | ||||||
| 	padding: 20px 0px; | 	padding: 20px 0px; | ||||||
| 	overflow: visible; | 	overflow: visible; | ||||||
|  | 	z-index: 1; | ||||||
| 	 | 	 | ||||||
| 	text-align: center; | 	text-align: center; | ||||||
|  |  | ||||||
| @@ -921,6 +922,33 @@ body { | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /********************************************* | ||||||
|  |  * PAUSED MODE | ||||||
|  |  *********************************************/ | ||||||
|  |  | ||||||
|  | .reveal .pause-overlay { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 0; | ||||||
|  | 	left: 0; | ||||||
|  | 	width: 100%; | ||||||
|  | 	height: 100%; | ||||||
|  | 	background: black; | ||||||
|  | 	visibility: hidden; | ||||||
|  | 	opacity: 0; | ||||||
|  | 	z-index: 100; | ||||||
|  |  | ||||||
|  | 	-webkit-transition: all 1s ease; | ||||||
|  | 	   -moz-transition: all 1s ease; | ||||||
|  | 	    -ms-transition: all 1s ease; | ||||||
|  | 	     -o-transition: all 1s ease; | ||||||
|  | 	        transition: all 1s ease; | ||||||
|  | } | ||||||
|  | .reveal.paused .pause-overlay { | ||||||
|  | 	visibility: visible; | ||||||
|  | 	opacity: 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
| /********************************************* | /********************************************* | ||||||
|  * FALLBACK |  * FALLBACK | ||||||
|  *********************************************/ |  *********************************************/ | ||||||
| @@ -945,10 +973,10 @@ body { | |||||||
|  |  | ||||||
|  |  | ||||||
| /********************************************* | /********************************************* | ||||||
|  * DEFAULT STATES |  * BACKGROUND STATES | ||||||
|  *********************************************/ |  *********************************************/ | ||||||
|  |  | ||||||
| .state-background { | .reveal .state-background { | ||||||
| 	position: absolute; | 	position: absolute; | ||||||
| 	width: 100%; | 	width: 100%; | ||||||
| 	height: 100%; | 	height: 100%; | ||||||
| @@ -960,13 +988,13 @@ body { | |||||||
| 	     -o-transition: background 800ms ease; | 	     -o-transition: background 800ms ease; | ||||||
| 	        transition: background 800ms ease; | 	        transition: background 800ms ease; | ||||||
| } | } | ||||||
| .alert .state-background { | .alert .reveal .state-background { | ||||||
| 	background: rgba( 200, 50, 30, 0.6 ); | 	background: rgba( 200, 50, 30, 0.6 ); | ||||||
| } | } | ||||||
| .soothe .state-background { | .soothe .reveal .state-background { | ||||||
| 	background: rgba( 50, 200, 90, 0.4 ); | 	background: rgba( 50, 200, 90, 0.4 ); | ||||||
| } | } | ||||||
| .blackout .state-background { | .blackout .reveal .state-background { | ||||||
| 	background: rgba( 0, 0, 0, 0.6 ); | 	background: rgba( 0, 0, 0, 0.6 ); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								index.html
									
									
									
									
									
								
							| @@ -34,9 +34,6 @@ | |||||||
| 		 | 		 | ||||||
| 		<div class="reveal"> | 		<div class="reveal"> | ||||||
|  |  | ||||||
| 			<!-- Used to fade in a background when a specific slide state is reached --> |  | ||||||
| 			<div class="state-background"></div> |  | ||||||
| 			 |  | ||||||
| 			<!-- Any section element inside of this container is displayed as a slide --> | 			<!-- Any section element inside of this container is displayed as a slide --> | ||||||
| 			<div class="slides"> | 			<div class="slides"> | ||||||
| 				<section> | 				<section> | ||||||
| @@ -278,6 +275,14 @@ function linkify( selector ) { | |||||||
| 					</script> | 					</script> | ||||||
| 				</section> | 				</section> | ||||||
| 				 | 				 | ||||||
|  | 				<section> | ||||||
|  | 					<h2>Take a Moment</h2> | ||||||
|  | 					<p> | ||||||
|  | 						Press b or period on your keyboard to enter the 'paused' mode. This mode is helpful when you want to take disctracting slides off the screen  | ||||||
|  | 						during a presentaion. | ||||||
|  | 					</p> | ||||||
|  | 				</section> | ||||||
|  |  | ||||||
| 				<section> | 				<section> | ||||||
| 					<h2>Stellar Links</h2> | 					<h2>Stellar Links</h2> | ||||||
| 					<ul> | 					<ul> | ||||||
| @@ -311,17 +316,6 @@ function linkify( selector ) { | |||||||
| 				</section> | 				</section> | ||||||
| 			</div> | 			</div> | ||||||
| 			 | 			 | ||||||
| 			<!-- The navigational controls UI --> |  | ||||||
| 			<aside class="controls"> |  | ||||||
| 				<a class="left" href="#">◄</a> |  | ||||||
| 				<a class="right" href="#">►</a> |  | ||||||
| 				<a class="up" href="#">▲</a> |  | ||||||
| 				<a class="down" href="#">▼</a> |  | ||||||
| 			</aside> |  | ||||||
|  |  | ||||||
| 			<!-- Presentation progress bar --> |  | ||||||
| 			<div class="progress"><span></span></div> |  | ||||||
| 			 |  | ||||||
| 		</div> | 		</div> | ||||||
|  |  | ||||||
| 		<script src="lib/js/head.min.js"></script> | 		<script src="lib/js/head.min.js"></script> | ||||||
| @@ -346,7 +340,7 @@ function linkify( selector ) { | |||||||
| 					{ src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, | 					{ src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, | ||||||
| 					{ src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, | 					{ src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, | ||||||
| 					{ src: '/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } }, | 					{ src: '/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } }, | ||||||
| 					{ src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } }, | 					{ src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } } | ||||||
| 				] | 				] | ||||||
| 			}); | 			}); | ||||||
| 			 | 			 | ||||||
|   | |||||||
							
								
								
									
										154
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										154
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /*! | /*! | ||||||
|  * reveal.js 2.1 r28 |  * reveal.js 2.1 r29 | ||||||
|  * http://lab.hakim.se/reveal-js |  * http://lab.hakim.se/reveal-js | ||||||
|  * MIT licensed |  * MIT licensed | ||||||
|  *  |  *  | ||||||
| @@ -116,9 +116,61 @@ var Reveal = (function(){ | |||||||
| 		// Copy options over to our config object | 		// Copy options over to our config object | ||||||
| 		extend( config, options ); | 		extend( config, options ); | ||||||
|  |  | ||||||
| 		// Cache references to DOM elements | 		// Make sure we've got all the DOM elements we need | ||||||
|  | 		setupDOM(); | ||||||
|  |  | ||||||
|  | 		// Hide the address bar in mobile browsers | ||||||
|  | 		hideAddressBar(); | ||||||
|  |  | ||||||
|  | 		// Loads the dependencies and continues to #start() once done | ||||||
|  | 		load(); | ||||||
|  | 		 | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Finds and stores references to DOM elements which are  | ||||||
|  | 	 * required by the presentation. If a required element is  | ||||||
|  | 	 * not found, it is created. | ||||||
|  | 	 */ | ||||||
|  | 	function setupDOM() { | ||||||
|  | 		// Cache references to key DOM elements | ||||||
| 		dom.theme = document.querySelector( '#theme' ); | 		dom.theme = document.querySelector( '#theme' ); | ||||||
| 		dom.wrapper = document.querySelector( '.reveal' ); | 		dom.wrapper = document.querySelector( '.reveal' ); | ||||||
|  |  | ||||||
|  | 		// Progress bar | ||||||
|  | 		if( !dom.wrapper.querySelector( '.progress' ) && config.progress ) { | ||||||
|  | 			var progressElement = document.createElement( 'div' ); | ||||||
|  | 			progressElement.classList.add( 'progress' ); | ||||||
|  | 			progressElement.innerHTML = '<span></span>'; | ||||||
|  | 			dom.wrapper.appendChild( progressElement ); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Arrow controls | ||||||
|  | 		if( !dom.wrapper.querySelector( '.controls' ) && config.controls ) { | ||||||
|  | 			var controlsElement = document.createElement( 'aside' ); | ||||||
|  | 			controlsElement.classList.add( 'controls' ); | ||||||
|  | 			controlsElement.innerHTML = '<a class="left" href="#">◄</a>' + | ||||||
|  | 										'<a class="right" href="#">►</a>' + | ||||||
|  | 										'<a class="up" href="#">▲</a>' + | ||||||
|  | 										'<a class="down" href="#">▼</a>'; | ||||||
|  | 			dom.wrapper.appendChild( controlsElement ); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Presentation background element | ||||||
|  | 		if( !dom.wrapper.querySelector( '.state-background' ) ) { | ||||||
|  | 			var backgroundElement = document.createElement( 'div' ); | ||||||
|  | 			backgroundElement.classList.add( 'state-background' ); | ||||||
|  | 			dom.wrapper.appendChild( backgroundElement ); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Overlay graphic which is displayed during the paused mode | ||||||
|  | 		if( !dom.wrapper.querySelector( '.pause-overlay' ) ) { | ||||||
|  | 			var pausedElement = document.createElement( 'div' ); | ||||||
|  | 			pausedElement.classList.add( 'pause-overlay' ); | ||||||
|  | 			dom.wrapper.appendChild( pausedElement ); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Cache references to elements | ||||||
| 		dom.progress = document.querySelector( '.reveal .progress' ); | 		dom.progress = document.querySelector( '.reveal .progress' ); | ||||||
| 		dom.progressbar = document.querySelector( '.reveal .progress span' ); | 		dom.progressbar = document.querySelector( '.reveal .progress span' ); | ||||||
|  |  | ||||||
| @@ -129,11 +181,12 @@ var Reveal = (function(){ | |||||||
| 			dom.controlsUp = document.querySelector( '.reveal .controls .up' ); | 			dom.controlsUp = document.querySelector( '.reveal .controls .up' ); | ||||||
| 			dom.controlsDown = document.querySelector( '.reveal .controls .down' ); | 			dom.controlsDown = document.querySelector( '.reveal .controls .down' ); | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 		// Loads the dependencies and continues to #start() once done | 	/** | ||||||
| 		load(); | 	 * Hides the address bar if we're on a mobile device. | ||||||
|  | 	 */ | ||||||
| 		// Set up hiding of the browser address bar | 	function hideAddressBar() { | ||||||
| 		if( navigator.userAgent.match( /(iphone|ipod|android)/i ) ) { | 		if( navigator.userAgent.match( /(iphone|ipod|android)/i ) ) { | ||||||
| 			// Give the page some scrollable overflow | 			// Give the page some scrollable overflow | ||||||
| 			document.documentElement.style.overflow = 'scroll'; | 			document.documentElement.style.overflow = 'scroll'; | ||||||
| @@ -143,7 +196,6 @@ var Reveal = (function(){ | |||||||
| 			window.addEventListener( 'load', removeAddressBar, false ); | 			window.addEventListener( 'load', removeAddressBar, false ); | ||||||
| 			window.addEventListener( 'orientationchange', removeAddressBar, false ); | 			window.addEventListener( 'orientationchange', removeAddressBar, false ); | ||||||
| 		} | 		} | ||||||
| 		 |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -378,9 +430,11 @@ var Reveal = (function(){ | |||||||
| 			// end | 			// end | ||||||
| 			case 35: navigateTo( Number.MAX_VALUE ); break; | 			case 35: navigateTo( Number.MAX_VALUE ); break; | ||||||
| 			// space | 			// space | ||||||
| 			case 32: overviewIsActive() ? deactivateOverview() : navigateNext(); break; | 			case 32: isOverviewActive() ? deactivateOverview() : navigateNext(); break; | ||||||
| 			// return | 			// return | ||||||
| 			case 13: overviewIsActive() ? deactivateOverview() : triggered = false; break; | 			case 13: isOverviewActive() ? deactivateOverview() : triggered = false; break; | ||||||
|  | 			// b, period | ||||||
|  | 			case 66: case 190: togglePause(); break; | ||||||
| 			default: | 			default: | ||||||
| 				triggered = false; | 				triggered = false; | ||||||
| 		} | 		} | ||||||
| @@ -532,7 +586,7 @@ var Reveal = (function(){ | |||||||
| 	function onOverviewSlideClicked( event ) { | 	function onOverviewSlideClicked( event ) { | ||||||
| 		// TODO There's a bug here where the event listeners are not  | 		// TODO There's a bug here where the event listeners are not  | ||||||
| 		// removed after deactivating the overview. | 		// removed after deactivating the overview. | ||||||
| 		if( overviewIsActive() ) { | 		if( isOverviewActive() ) { | ||||||
| 			event.preventDefault(); | 			event.preventDefault(); | ||||||
|  |  | ||||||
| 			deactivateOverview(); | 			deactivateOverview(); | ||||||
| @@ -652,16 +706,66 @@ var Reveal = (function(){ | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Toggles the slide overview mode on and off. | ||||||
|  | 	 * | ||||||
|  | 	 * @param {Boolean} override Optional flag which overrides the  | ||||||
|  | 	 * toggle logic and forcibly sets the desired state. True means  | ||||||
|  | 	 * overview is open, false means it's closed. | ||||||
|  | 	 */ | ||||||
|  | 	function toggleOverview( override ) { | ||||||
|  | 		if( typeof override === 'boolean' ) { | ||||||
|  | 			override ? activateOverview() : deactivateOverview(); | ||||||
|  | 		} | ||||||
|  | 		else { | ||||||
|  | 			isOverviewActive() ? deactivateOverview() : activateOverview(); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Checks if the overview is currently active. | 	 * Checks if the overview is currently active. | ||||||
| 	 *  | 	 *  | ||||||
| 	 * @return {Boolean} true if the overview is active, | 	 * @return {Boolean} true if the overview is active, | ||||||
| 	 * false otherwise | 	 * false otherwise | ||||||
| 	 */ | 	 */ | ||||||
| 	function overviewIsActive() { | 	function isOverviewActive() { | ||||||
| 		return dom.wrapper.classList.contains( 'overview' ); | 		return dom.wrapper.classList.contains( 'overview' ); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Enters the paused mode which fades everything on screen to  | ||||||
|  | 	 * black. | ||||||
|  | 	 */ | ||||||
|  | 	function pause() { | ||||||
|  | 		dom.wrapper.classList.add( 'paused' ); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Exits from the paused mode. | ||||||
|  | 	 */ | ||||||
|  | 	function resume() { | ||||||
|  | 		dom.wrapper.classList.remove( 'paused' ); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Toggles the paused mode on and off. | ||||||
|  | 	 */ | ||||||
|  | 	function togglePause() { | ||||||
|  | 		if( isPaused() ) { | ||||||
|  | 			resume(); | ||||||
|  | 		} | ||||||
|  | 		else { | ||||||
|  | 			pause(); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Checks if we are currently in the paused mode. | ||||||
|  | 	 */ | ||||||
|  | 	function isPaused() { | ||||||
|  | 		return dom.wrapper.classList.contains( 'paused' ); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Updates one dimension of slides by showing the slide | 	 * Updates one dimension of slides by showing the slide | ||||||
| 	 * with the specified index. | 	 * with the specified index. | ||||||
| @@ -701,7 +805,7 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 				// Optimization; hide all slides that are three or more steps  | 				// Optimization; hide all slides that are three or more steps  | ||||||
| 				// away from the present slide | 				// away from the present slide | ||||||
| 				if( overviewIsActive() === false ) { | 				if( isOverviewActive() === false ) { | ||||||
| 					// The distance loops so that it measures 1 between the first | 					// The distance loops so that it measures 1 between the first | ||||||
| 					// and last slides | 					// and last slides | ||||||
| 					var distance = Math.abs( ( index - i ) % ( slidesLength - 3 ) ) || 0; | 					var distance = Math.abs( ( index - i ) % ( slidesLength - 3 ) ) || 0; | ||||||
| @@ -801,7 +905,7 @@ var Reveal = (function(){ | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		// If the overview is active, re-activate it to update positions | 		// If the overview is active, re-activate it to update positions | ||||||
| 		if( overviewIsActive() ) { | 		if( isOverviewActive() ) { | ||||||
| 			activateOverview(); | 			activateOverview(); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -1024,28 +1128,28 @@ var Reveal = (function(){ | |||||||
| 	 | 	 | ||||||
| 	function navigateLeft() { | 	function navigateLeft() { | ||||||
| 		// Prioritize hiding fragments | 		// Prioritize hiding fragments | ||||||
| 		if( overviewIsActive() || previousFragment() === false ) { | 		if( isOverviewActive() || previousFragment() === false ) { | ||||||
| 			slide( indexh - 1, 0 ); | 			slide( indexh - 1, 0 ); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	function navigateRight() { | 	function navigateRight() { | ||||||
| 		// Prioritize revealing fragments | 		// Prioritize revealing fragments | ||||||
| 		if( overviewIsActive() || nextFragment() === false ) { | 		if( isOverviewActive() || nextFragment() === false ) { | ||||||
| 			slide( indexh + 1, 0 ); | 			slide( indexh + 1, 0 ); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	function navigateUp() { | 	function navigateUp() { | ||||||
| 		// Prioritize hiding fragments | 		// Prioritize hiding fragments | ||||||
| 		if( overviewIsActive() || previousFragment() === false ) { | 		if( isOverviewActive() || previousFragment() === false ) { | ||||||
| 			slide( indexh, indexv - 1 ); | 			slide( indexh, indexv - 1 ); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	function navigateDown() { | 	function navigateDown() { | ||||||
| 		// Prioritize revealing fragments | 		// Prioritize revealing fragments | ||||||
| 		if( overviewIsActive() || nextFragment() === false ) { | 		if( isOverviewActive() || nextFragment() === false ) { | ||||||
| 			slide( indexh, indexv + 1 ); | 			slide( indexh, indexv + 1 ); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -1089,22 +1193,6 @@ var Reveal = (function(){ | |||||||
| 		cueAutoSlide(); | 		cueAutoSlide(); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	/** |  | ||||||
| 	 * Toggles the slide overview mode on and off. |  | ||||||
| 	 * |  | ||||||
| 	 * @param {Boolean} override Optional flag which overrides the  |  | ||||||
| 	 * toggle logic and forcibly sets the desired state. True means  |  | ||||||
| 	 * overview is open, false means it's closed. |  | ||||||
| 	 */ |  | ||||||
| 	function toggleOverview( override ) { |  | ||||||
| 		if( typeof override === 'boolean' ) { |  | ||||||
| 			override ? activateOverview() : deactivateOverview(); |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			overviewIsActive() ? deactivateOverview() : activateOverview(); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	 |  | ||||||
| 	// Expose some methods publicly | 	// Expose some methods publicly | ||||||
| 	return { | 	return { | ||||||
| 		initialize: initialize, | 		initialize: initialize, | ||||||
|   | |||||||
							
								
								
									
										136
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										136
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,72 +1,78 @@ | |||||||
| /*! | /*! | ||||||
|  * reveal.js 2.1 r28 |  * reveal.js 2.1 r29 | ||||||
|  * http://lab.hakim.se/reveal-js |  * http://lab.hakim.se/reveal-js | ||||||
|  * MIT licensed |  * MIT licensed | ||||||
|  *  |  *  | ||||||
|  * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |  * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se | ||||||
|  */ |  */ | ||||||
| var Reveal=(function(){var j=".reveal .slides>section",b=".reveal .slides>section.present>section",M={controls:true,progress:true,history:false,keyboard:true,overview:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:"default",transition:"default",dependencies:[]},k=0,c=0,v,D,ab=[],d={},O="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,l="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,w=0,i=0,z=0,V={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:40}; | var Reveal=(function(){var l=".reveal .slides>section",b=".reveal .slides>section.present>section",R={controls:true,progress:true,history:false,keyboard:true,overview:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:"default",transition:"default",dependencies:[]},m=0,e=0,y,G,ah=[],f={},T="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,n="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,z=0,k=0,C=0,aa={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:40}; | ||||||
| function g(ac){if((!l&&!O)){document.body.setAttribute("class","no-transforms");return;}q(M,ac);d.theme=document.querySelector("#theme");d.wrapper=document.querySelector(".reveal"); | function i(ai){if((!n&&!T)){document.body.setAttribute("class","no-transforms");return;}t(R,ai);P();d();V();}function P(){f.theme=document.querySelector("#theme"); | ||||||
| d.progress=document.querySelector(".reveal .progress");d.progressbar=document.querySelector(".reveal .progress span");if(M.controls){d.controls=document.querySelector(".reveal .controls"); | f.wrapper=document.querySelector(".reveal");if(!f.wrapper.querySelector(".progress")&&R.progress){var al=document.createElement("div");al.classList.add("progress"); | ||||||
| d.controlsLeft=document.querySelector(".reveal .controls .left");d.controlsRight=document.querySelector(".reveal .controls .right");d.controlsUp=document.querySelector(".reveal .controls .up"); | al.innerHTML="<span></span>";f.wrapper.appendChild(al);}if(!f.wrapper.querySelector(".controls")&&R.controls){var ak=document.createElement("aside");ak.classList.add("controls"); | ||||||
| d.controlsDown=document.querySelector(".reveal .controls .down");}Q();if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll"; | ak.innerHTML='<a class="left" href="#">◄</a><a class="right" href="#">►</a><a class="up" href="#">▲</a><a class="down" href="#">▼</a>'; | ||||||
| document.body.style.height="120%";window.addEventListener("load",W,false);window.addEventListener("orientationchange",W,false);}}function Q(){var ad=[],ah=[]; | f.wrapper.appendChild(ak);}if(!f.wrapper.querySelector(".state-background")){var aj=document.createElement("div");aj.classList.add("state-background"); | ||||||
| for(var ae=0,ac=M.dependencies.length;ae<ac;ae++){var af=M.dependencies[ae];if(!af.condition||af.condition()){if(af.async){ah.push(af.src);}else{ad.push(af.src); | f.wrapper.appendChild(aj);}if(!f.wrapper.querySelector(".pause-overlay")){var ai=document.createElement("div");ai.classList.add("pause-overlay");f.wrapper.appendChild(ai); | ||||||
| }if(typeof af.callback==="function"){head.ready(af.src.match(/([\w\d_\-]*)\.?[^\\\/]*$/i)[0],af.callback);}}}function ag(){head.js.apply(null,ah);E();}if(ad.length){head.ready(ag); | }f.progress=document.querySelector(".reveal .progress");f.progressbar=document.querySelector(".reveal .progress span");if(R.controls){f.controls=document.querySelector(".reveal .controls"); | ||||||
| head.js.apply(null,ad);}else{ag();}}function E(){B();H();G();J();}function H(){if(O===false){M.transition="linear";}if(M.controls&&d.controls){d.controls.style.display="block"; | f.controlsLeft=document.querySelector(".reveal .controls .left");f.controlsRight=document.querySelector(".reveal .controls .right");f.controlsUp=document.querySelector(".reveal .controls .up"); | ||||||
| }if(M.progress&&d.progress){d.progress.style.display="block";}if(M.theme&&d.theme){var ae=d.theme.getAttribute("href");var ac=/[^\/]*?(?=\.css)/;var ad=ae.match(ac)[0]; | f.controlsDown=document.querySelector(".reveal .controls .down");}}function d(){if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll"; | ||||||
| if(M.theme!==ad){ae=ae.replace(ac,M.theme);d.theme.setAttribute("href",ae);}}if(M.transition!=="default"){d.wrapper.classList.add(M.transition);}if(M.mouseWheel){document.addEventListener("DOMMouseScroll",m,false); | document.body.style.height="120%";window.addEventListener("load",ab,false);window.addEventListener("orientationchange",ab,false);}}function V(){var aj=[],an=[]; | ||||||
| document.addEventListener("mousewheel",m,false);}if(M.rollingLinks){I();}}function B(){document.addEventListener("touchstart",x,false);document.addEventListener("touchmove",Y,false); | for(var ak=0,ai=R.dependencies.length;ak<ai;ak++){var al=R.dependencies[ak];if(!al.condition||al.condition()){if(al.async){an.push(al.src);}else{aj.push(al.src); | ||||||
| document.addEventListener("touchend",R,false);window.addEventListener("hashchange",t,false);if(M.keyboard){document.addEventListener("keydown",Z,false); | }if(typeof al.callback==="function"){head.ready(al.src.match(/([\w\d_\-]*)\.?[^\\\/]*$/i)[0],al.callback);}}}function am(){head.js.apply(null,an);H();}if(aj.length){head.ready(am); | ||||||
| }if(M.controls&&d.controls){d.controlsLeft.addEventListener("click",n(y),false);d.controlsRight.addEventListener("click",n(h),false);d.controlsUp.addEventListener("click",n(r),false); | head.js.apply(null,aj);}else{am();}}function H(){E();K();J();N();}function K(){if(T===false){R.transition="linear";}if(R.controls&&f.controls){f.controls.style.display="block"; | ||||||
| d.controlsDown.addEventListener("click",n(C),false);}}function P(){document.removeEventListener("keydown",Z,false);document.removeEventListener("touchstart",x,false); | }if(R.progress&&f.progress){f.progress.style.display="block";}if(R.theme&&f.theme){var ak=f.theme.getAttribute("href");var ai=/[^\/]*?(?=\.css)/;var aj=ak.match(ai)[0]; | ||||||
| document.removeEventListener("touchmove",Y,false);document.removeEventListener("touchend",R,false);window.removeEventListener("hashchange",t,false);if(M.controls&&d.controls){d.controlsLeft.removeEventListener("click",n(y),false); | if(R.theme!==aj){ak=ak.replace(ai,R.theme);f.theme.setAttribute("href",ak);}}if(R.transition!=="default"){f.wrapper.classList.add(R.transition);}if(R.mouseWheel){document.addEventListener("DOMMouseScroll",p,false); | ||||||
| d.controlsRight.removeEventListener("click",n(h),false);d.controlsUp.removeEventListener("click",n(r),false);d.controlsDown.removeEventListener("click",n(C),false); | document.addEventListener("mousewheel",p,false);}if(R.rollingLinks){M();}}function E(){document.addEventListener("touchstart",A,false);document.addEventListener("touchmove",ad,false); | ||||||
| }}function q(ad,ac){for(var ae in ac){ad[ae]=ac[ae];}}function N(ae,ac){var af=ae.x-ac.x,ad=ae.y-ac.y;return Math.sqrt(af*af+ad*ad);}function n(ac){return function(ad){ad.preventDefault(); | document.addEventListener("touchend",W,false);window.addEventListener("hashchange",w,false);if(R.keyboard){document.addEventListener("keydown",af,false); | ||||||
| ac.call();};}function W(){setTimeout(function(){window.scrollTo(0,1);},0);}function o(ad,ac){var ae=document.createEvent("HTMLEvents",1,2);ae.initEvent(ad,true,true); | }if(R.controls&&f.controls){f.controlsLeft.addEventListener("click",q(B),false);f.controlsRight.addEventListener("click",q(j),false);f.controlsUp.addEventListener("click",q(u),false); | ||||||
| q(ae,ac);d.wrapper.dispatchEvent(ae);}function Z(ad){if(document.querySelector(":focus")!==null||ad.shiftKey||ad.altKey||ad.ctrlKey||ad.metaKey){return; | f.controlsDown.addEventListener("click",q(F),false);}}function U(){document.removeEventListener("keydown",af,false);document.removeEventListener("touchstart",A,false); | ||||||
| }var ac=true;switch(ad.keyCode){case 80:case 33:T();break;case 78:case 34:u();break;case 72:case 37:y();break;case 76:case 39:h();break;case 75:case 38:r(); | document.removeEventListener("touchmove",ad,false);document.removeEventListener("touchend",W,false);window.removeEventListener("hashchange",w,false);if(R.controls&&f.controls){f.controlsLeft.removeEventListener("click",q(B),false); | ||||||
| break;case 74:case 40:C();break;case 36:K(0);break;case 35:K(Number.MAX_VALUE);break;case 32:U()?X():u();break;case 13:U()?X():ac=false;break;default:ac=false; | f.controlsRight.removeEventListener("click",q(j),false);f.controlsUp.removeEventListener("click",q(u),false);f.controlsDown.removeEventListener("click",q(F),false); | ||||||
| }if(ac){ad.preventDefault();}else{if(ad.keyCode===27&&O){S();ad.preventDefault();}}J();}function x(ac){V.startX=ac.touches[0].clientX;V.startY=ac.touches[0].clientY; | }}function t(aj,ai){for(var ak in ai){aj[ak]=ai[ak];}}function S(ak,ai){var al=ak.x-ai.x,aj=ak.y-ai.y;return Math.sqrt(al*al+aj*aj);}function q(ai){return function(aj){aj.preventDefault(); | ||||||
| V.startCount=ac.touches.length;if(ac.touches.length===2){V.startSpan=N({x:ac.touches[1].clientX,y:ac.touches[1].clientY},{x:V.startX,y:V.startY});}}function Y(ah){if(!V.handled){var af=ah.touches[0].clientX; | ai.call();};}function ab(){setTimeout(function(){window.scrollTo(0,1);},0);}function r(aj,ai){var ak=document.createEvent("HTMLEvents",1,2);ak.initEvent(aj,true,true); | ||||||
| var ae=ah.touches[0].clientY;if(ah.touches.length===2&&V.startCount===2){var ag=N({x:ah.touches[1].clientX,y:ah.touches[1].clientY},{x:V.startX,y:V.startY}); | t(ak,ai);f.wrapper.dispatchEvent(ak);}function af(aj){if(document.querySelector(":focus")!==null||aj.shiftKey||aj.altKey||aj.ctrlKey||aj.metaKey){return; | ||||||
| if(Math.abs(V.startSpan-ag)>V.threshold){V.handled=true;if(ag<V.startSpan){F();}else{X();}}}else{if(ah.touches.length===1){var ad=af-V.startX,ac=ae-V.startY; | }var ai=true;switch(aj.keyCode){case 80:case 33:Y();break;case 78:case 34:x();break;case 72:case 37:B();break;case 76:case 39:j();break;case 75:case 38:u(); | ||||||
| if(ad>V.threshold&&Math.abs(ad)>Math.abs(ac)){V.handled=true;y();}else{if(ad<-V.threshold&&Math.abs(ad)>Math.abs(ac)){V.handled=true;h();}else{if(ac>V.threshold){V.handled=true; | break;case 74:case 40:F();break;case 36:O(0);break;case 35:O(Number.MAX_VALUE);break;case 32:L()?ac():x();break;case 13:L()?ac():ai=false;break;case 66:case 190:Z(); | ||||||
| r();}else{if(ac<-V.threshold){V.handled=true;C();}}}}}}ah.preventDefault();}else{if(navigator.userAgent.match(/android/gi)){ah.preventDefault();}}}function R(ac){V.handled=false; | break;default:ai=false;}if(ai){aj.preventDefault();}else{if(aj.keyCode===27&&T){X();aj.preventDefault();}}N();}function A(ai){aa.startX=ai.touches[0].clientX; | ||||||
| }function m(ac){clearTimeout(w);w=setTimeout(function(){var ad=ac.detail||-ac.wheelDelta;if(ad>0){u();}else{T();}},100);}function t(ac){G();}function A(ac){if(U()){ac.preventDefault(); | aa.startY=ai.touches[0].clientY;aa.startCount=ai.touches.length;if(ai.touches.length===2){aa.startSpan=S({x:ai.touches[1].clientX,y:ai.touches[1].clientY},{x:aa.startX,y:aa.startY}); | ||||||
| X();k=this.getAttribute("data-index-h");c=this.getAttribute("data-index-v");a();}}function I(){if(O&&!("msPerspective" in document.body.style)){var ad=document.querySelectorAll(".reveal .slides section a:not(.image)"); | }}function ad(an){if(!aa.handled){var al=an.touches[0].clientX;var ak=an.touches[0].clientY;if(an.touches.length===2&&aa.startCount===2){var am=S({x:an.touches[1].clientX,y:an.touches[1].clientY},{x:aa.startX,y:aa.startY}); | ||||||
| for(var ae=0,ac=ad.length;ae<ac;ae++){var af=ad[ae];if(af.textContent&&!af.querySelector("img")&&(!af.className||!af.classList.contains(af,"roll"))){af.classList.add("roll"); | if(Math.abs(aa.startSpan-am)>aa.threshold){aa.handled=true;if(am<aa.startSpan){I();}else{ac();}}}else{if(an.touches.length===1){var aj=al-aa.startX,ai=ak-aa.startY; | ||||||
| af.innerHTML='<span data-title="'+af.text+'">'+af.innerHTML+"</span>";}}}}function F(){if(M.overview){d.wrapper.classList.add("overview");var ac=document.querySelectorAll(j); | if(aj>aa.threshold&&Math.abs(aj)>Math.abs(ai)){aa.handled=true;B();}else{if(aj<-aa.threshold&&Math.abs(aj)>Math.abs(ai)){aa.handled=true;j();}else{if(ai>aa.threshold){aa.handled=true; | ||||||
| for(var ah=0,af=ac.length;ah<af;ah++){var ae=ac[ah],al="translateZ(-2500px) translate("+((ah-k)*105)+"%, 0%)";ae.setAttribute("data-index-h",ah);ae.style.display="block"; | u();}else{if(ai<-aa.threshold){aa.handled=true;F();}}}}}}an.preventDefault();}else{if(navigator.userAgent.match(/android/gi)){an.preventDefault();}}}function W(ai){aa.handled=false; | ||||||
| ae.style.WebkitTransform=al;ae.style.MozTransform=al;ae.style.msTransform=al;ae.style.OTransform=al;ae.style.transform=al;if(!ae.classList.contains("stack")){ae.addEventListener("click",A,true); | }function p(ai){clearTimeout(z);z=setTimeout(function(){var aj=ai.detail||-ai.wheelDelta;if(aj>0){x();}else{Y();}},100);}function w(ai){J();}function D(ai){if(L()){ai.preventDefault(); | ||||||
| }var ak=ae.querySelectorAll("section");for(var ag=0,ad=ak.length;ag<ad;ag++){var aj=ak[ag],ai="translate(0%, "+((ag-(ah===k?c:0))*105)+"%)";aj.setAttribute("data-index-h",ah); | ac();m=this.getAttribute("data-index-h");e=this.getAttribute("data-index-v");a();}}function M(){if(T&&!("msPerspective" in document.body.style)){var aj=document.querySelectorAll(".reveal .slides section a:not(.image)"); | ||||||
| aj.setAttribute("data-index-v",ag);aj.style.display="block";aj.style.WebkitTransform=ai;aj.style.MozTransform=ai;aj.style.msTransform=ai;aj.style.OTransform=ai; | for(var ak=0,ai=aj.length;ak<ai;ak++){var al=aj[ak];if(al.textContent&&!al.querySelector("img")&&(!al.className||!al.classList.contains(al,"roll"))){al.classList.add("roll"); | ||||||
| aj.style.transform=ai;aj.addEventListener("click",A,true);}}}}function X(){if(M.overview){d.wrapper.classList.remove("overview");var af=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section")); | al.innerHTML='<span data-title="'+al.text+'">'+al.innerHTML+"</span>";}}}}function I(){if(R.overview){f.wrapper.classList.add("overview");var ai=document.querySelectorAll(l); | ||||||
| for(var ae=0,ac=af.length;ae<ac;ae++){var ad=af[ae];ad.style.WebkitTransform="";ad.style.MozTransform="";ad.style.msTransform="";ad.style.OTransform=""; | for(var an=0,al=ai.length;an<al;an++){var ak=ai[an],ar="translateZ(-2500px) translate("+((an-m)*105)+"%, 0%)";ak.setAttribute("data-index-h",an);ak.style.display="block"; | ||||||
| ad.style.transform="";ad.removeEventListener("click",A);}a();}}function U(){return d.wrapper.classList.contains("overview");}function aa(ad,af){var ah=Array.prototype.slice.call(document.querySelectorAll(ad)),ai=ah.length; | ak.style.WebkitTransform=ar;ak.style.MozTransform=ar;ak.style.msTransform=ar;ak.style.OTransform=ar;ak.style.transform=ar;if(!ak.classList.contains("stack")){ak.addEventListener("click",D,true); | ||||||
| if(ai){if(M.loop){af%=ai;if(af<0){af=ai+af;}}af=Math.max(Math.min(af,ai-1),0);for(var ag=0;ag<ai;ag++){var ac=ah[ag];if(U()===false){var aj=Math.abs((af-ag)%(ai-3))||0; | }var aq=ak.querySelectorAll("section");for(var am=0,aj=aq.length;am<aj;am++){var ap=aq[am],ao="translate(0%, "+((am-(an===m?e:0))*105)+"%)";ap.setAttribute("data-index-h",an); | ||||||
| ac.style.display=aj>3?"none":"block";}ah[ag].classList.remove("past");ah[ag].classList.remove("present");ah[ag].classList.remove("future");if(ag<af){ah[ag].classList.add("past"); | ap.setAttribute("data-index-v",am);ap.style.display="block";ap.style.WebkitTransform=ao;ap.style.MozTransform=ao;ap.style.msTransform=ao;ap.style.OTransform=ao; | ||||||
| }else{if(ag>af){ah[ag].classList.add("future");}}if(ac.querySelector("section")){ah[ag].classList.add("stack");}}ah[af].classList.add("present");var ae=ah[af].getAttribute("data-state"); | ap.style.transform=ao;ap.addEventListener("click",D,true);}}}}function ac(){if(R.overview){f.wrapper.classList.remove("overview");var al=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section")); | ||||||
| if(ae){ab=ab.concat(ae.split(" "));}}else{af=0;}return af;}function a(ai,am){v=D;var af=ab.concat();ab.length=0;var al=k,ad=c;k=aa(j,ai===undefined?k:ai); | for(var ak=0,ai=al.length;ak<ai;ak++){var aj=al[ak];aj.style.WebkitTransform="";aj.style.MozTransform="";aj.style.msTransform="";aj.style.OTransform=""; | ||||||
| c=aa(b,am===undefined?c:am);stateLoop:for(var ag=0,aj=ab.length;ag<aj;ag++){for(var ae=0;ae<af.length;ae++){if(af[ae]===ab[ag]){af.splice(ae,1);continue stateLoop; | aj.style.transform="";aj.removeEventListener("click",D);}a();}}function X(ai){if(typeof ai==="boolean"){ai?I():ac();}else{L()?ac():I();}}function L(){return f.wrapper.classList.contains("overview"); | ||||||
| }}document.documentElement.classList.add(ab[ag]);o(ab[ag]);}while(af.length){document.documentElement.classList.remove(af.pop());}if(M.progress&&d.progress){d.progressbar.style.width=(k/(document.querySelectorAll(j).length-1))*window.innerWidth+"px"; | }function c(){f.wrapper.classList.add("paused");}function o(){f.wrapper.classList.remove("paused");}function Z(){if(ae()){o();}else{c();}}function ae(){return f.wrapper.classList.contains("paused"); | ||||||
| }if(U()){F();}p();clearTimeout(z);z=setTimeout(f,1500);var ac=document.querySelectorAll(j);var ak=ac[k],ah=ak.querySelectorAll("section");D=ah[c]||ak;if(k!==al||c!==ad){o("slidechanged",{indexh:k,indexv:c,previousSlide:v,currentSlide:D}); | }function ag(aj,al){var an=Array.prototype.slice.call(document.querySelectorAll(aj)),ao=an.length;if(ao){if(R.loop){al%=ao;if(al<0){al=ao+al;}}al=Math.max(Math.min(al,ao-1),0); | ||||||
| }else{v=null;}if(v){v.classList.remove("present");}}function p(){if(!M.controls||!d.controls){return;}var ac=e();[d.controlsLeft,d.controlsRight,d.controlsUp,d.controlsDown].forEach(function(ad){ad.classList.remove("enabled"); | for(var am=0;am<ao;am++){var ai=an[am];if(L()===false){var ap=Math.abs((al-am)%(ao-3))||0;ai.style.display=ap>3?"none":"block";}an[am].classList.remove("past"); | ||||||
| });if(ac.left){d.controlsLeft.classList.add("enabled");}if(ac.right){d.controlsRight.classList.add("enabled");}if(ac.up){d.controlsUp.classList.add("enabled"); | an[am].classList.remove("present");an[am].classList.remove("future");if(am<al){an[am].classList.add("past");}else{if(am>al){an[am].classList.add("future"); | ||||||
| }if(ac.down){d.controlsDown.classList.add("enabled");}}function e(){var ac=document.querySelectorAll(j),ad=document.querySelectorAll(b);return{left:k>0,right:k<ac.length-1,up:c>0,down:c<ad.length-1}; | }}if(ai.querySelector("section")){an[am].classList.add("stack");}}an[al].classList.add("present");var ak=an[al].getAttribute("data-state");if(ak){ah=ah.concat(ak.split(" ")); | ||||||
| }function G(){var ah=window.location.hash;var ag=ah.slice(2).split("/"),ae=ah.replace(/#|\//gi,"");if(isNaN(parseInt(ag[0],10))&&ae.length){var ac=document.querySelector("#"+ae); | }}else{al=0;}return al;}function a(ao,at){y=G;var al=ah.concat();ah.length=0;var ar=m,aj=e;m=ag(l,ao===undefined?m:ao);e=ag(b,at===undefined?e:at);stateLoop:for(var am=0,ap=ah.length; | ||||||
| if(ac){var ai=Reveal.getIndices(ac);K(ai.h,ai.v);}else{K(k,c);}}else{var af=parseInt(ag[0],10)||0,ad=parseInt(ag[1],10)||0;K(af,ad);}}function f(){if(M.history){var ac="/"; | am<ap;am++){for(var ak=0;ak<al.length;ak++){if(al[ak]===ah[am]){al.splice(ak,1);continue stateLoop;}}document.documentElement.classList.add(ah[am]);r(ah[am]); | ||||||
| if(k>0||c>0){ac+=k;}if(c>0){ac+="/"+c;}window.location.hash=ac;}}function s(){if(document.querySelector(b+".present")){var ad=document.querySelectorAll(b+".present .fragment:not(.visible)"); | }while(al.length){document.documentElement.classList.remove(al.pop());}if(R.progress&&f.progress){f.progressbar.style.width=(m/(document.querySelectorAll(l).length-1))*window.innerWidth+"px"; | ||||||
| if(ad.length){ad[0].classList.add("visible");o("fragmentshown",{fragment:ad[0]});return true;}}else{var ac=document.querySelectorAll(j+".present .fragment:not(.visible)"); | }if(L()){I();}s();clearTimeout(C);C=setTimeout(h,1500);var ai=document.querySelectorAll(l);var aq=ai[m],an=aq.querySelectorAll("section");G=an[e]||aq;if(m!==ar||e!==aj){r("slidechanged",{indexh:m,indexv:e,previousSlide:y,currentSlide:G}); | ||||||
| if(ac.length){ac[0].classList.add("visible");o("fragmentshown",{fragment:ac[0]});return true;}}return false;}function L(){if(document.querySelector(b+".present")){var ad=document.querySelectorAll(b+".present .fragment.visible"); | }else{y=null;}if(y){y.classList.remove("present");}}function s(){if(!R.controls||!f.controls){return;}var ai=g();[f.controlsLeft,f.controlsRight,f.controlsUp,f.controlsDown].forEach(function(aj){aj.classList.remove("enabled"); | ||||||
| if(ad.length){ad[ad.length-1].classList.remove("visible");o("fragmenthidden",{fragment:ad[ad.length-1]});return true;}}else{var ac=document.querySelectorAll(j+".present .fragment.visible"); | });if(ai.left){f.controlsLeft.classList.add("enabled");}if(ai.right){f.controlsRight.classList.add("enabled");}if(ai.up){f.controlsUp.classList.add("enabled"); | ||||||
| if(ac.length){ac[ac.length-1].classList.remove("visible");o("fragmenthidden",{fragment:ac[ac.length-1]});return true;}}return false;}function J(){clearTimeout(i); | }if(ai.down){f.controlsDown.classList.add("enabled");}}function g(){var ai=document.querySelectorAll(l),aj=document.querySelectorAll(b);return{left:m>0,right:m<ai.length-1,up:e>0,down:e<aj.length-1}; | ||||||
| if(M.autoSlide){i=setTimeout(u,M.autoSlide);}}function K(ad,ac){a(ad,ac);}function y(){if(U()||L()===false){a(k-1,0);}}function h(){if(U()||s()===false){a(k+1,0); | }function J(){var an=window.location.hash;var am=an.slice(2).split("/"),ak=an.replace(/#|\//gi,"");if(isNaN(parseInt(am[0],10))&&ak.length){var ai=document.querySelector("#"+ak); | ||||||
| }}function r(){if(U()||L()===false){a(k,c-1);}}function C(){if(U()||s()===false){a(k,c+1);}}function T(){if(L()===false){if(e().up){r();}else{var ac=document.querySelector(".reveal .slides>section.past:nth-child("+k+")"); | if(ai){var ao=Reveal.getIndices(ai);O(ao.h,ao.v);}else{O(m,e);}}else{var al=parseInt(am[0],10)||0,aj=parseInt(am[1],10)||0;O(al,aj);}}function h(){if(R.history){var ai="/"; | ||||||
| if(ac){c=(ac.querySelectorAll("section").length+1)||0;k--;a();}}}}function u(){if(s()===false){e().down?C():h();}J();}function S(ac){if(typeof ac==="boolean"){ac?F():X(); | if(m>0||e>0){ai+=m;}if(e>0){ai+="/"+e;}window.location.hash=ai;}}function v(){if(document.querySelector(b+".present")){var aj=document.querySelectorAll(b+".present .fragment:not(.visible)"); | ||||||
| }else{U()?X():F();}}return{initialize:g,navigateTo:K,navigateLeft:y,navigateRight:h,navigateUp:r,navigateDown:C,navigatePrev:T,navigateNext:u,toggleOverview:S,addEventListeners:B,removeEventListeners:P,getIndices:function(ac){var ag=k,ae=c; | if(aj.length){aj[0].classList.add("visible");r("fragmentshown",{fragment:aj[0]});return true;}}else{var ai=document.querySelectorAll(l+".present .fragment:not(.visible)"); | ||||||
| if(ac){var ah=!!ac.parentNode.nodeName.match(/section/gi);var af=ah?ac.parentNode:ac;var ad=Array.prototype.slice.call(document.querySelectorAll(j));ag=Math.max(ad.indexOf(af),0); | if(ai.length){ai[0].classList.add("visible");r("fragmentshown",{fragment:ai[0]});return true;}}return false;}function Q(){if(document.querySelector(b+".present")){var aj=document.querySelectorAll(b+".present .fragment.visible"); | ||||||
| if(ah){ae=Math.max(Array.prototype.slice.call(ac.parentNode.children).indexOf(ac),0);}}return{h:ag,v:ae};},getPreviousSlide:function(){return v;},getCurrentSlide:function(){return D; | if(aj.length){aj[aj.length-1].classList.remove("visible");r("fragmenthidden",{fragment:aj[aj.length-1]});return true;}}else{var ai=document.querySelectorAll(l+".present .fragment.visible"); | ||||||
| },getQueryHash:function(){var ac={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(ad){ac[ad.split("=").shift()]=ad.split("=").pop();});return ac; | if(ai.length){ai[ai.length-1].classList.remove("visible");r("fragmenthidden",{fragment:ai[ai.length-1]});return true;}}return false;}function N(){clearTimeout(k); | ||||||
| },addEventListener:function(ad,ae,ac){if("addEventListener" in window){(d.wrapper||document.querySelector(".reveal")).addEventListener(ad,ae,ac);}},removeEventListener:function(ad,ae,ac){if("addEventListener" in window){(d.wrapper||document.querySelector(".reveal")).removeEventListener(ad,ae,ac); | if(R.autoSlide){k=setTimeout(x,R.autoSlide);}}function O(aj,ai){a(aj,ai);}function B(){if(L()||Q()===false){a(m-1,0);}}function j(){if(L()||v()===false){a(m+1,0); | ||||||
|  | }}function u(){if(L()||Q()===false){a(m,e-1);}}function F(){if(L()||v()===false){a(m,e+1);}}function Y(){if(Q()===false){if(g().up){u();}else{var ai=document.querySelector(".reveal .slides>section.past:nth-child("+m+")"); | ||||||
|  | if(ai){e=(ai.querySelectorAll("section").length+1)||0;m--;a();}}}}function x(){if(v()===false){g().down?F():j();}N();}return{initialize:i,navigateTo:O,navigateLeft:B,navigateRight:j,navigateUp:u,navigateDown:F,navigatePrev:Y,navigateNext:x,toggleOverview:X,addEventListeners:E,removeEventListeners:U,getIndices:function(ai){var am=m,ak=e; | ||||||
|  | if(ai){var an=!!ai.parentNode.nodeName.match(/section/gi);var al=an?ai.parentNode:ai;var aj=Array.prototype.slice.call(document.querySelectorAll(l));am=Math.max(aj.indexOf(al),0); | ||||||
|  | if(an){ak=Math.max(Array.prototype.slice.call(ai.parentNode.children).indexOf(ai),0);}}return{h:am,v:ak};},getPreviousSlide:function(){return y;},getCurrentSlide:function(){return G; | ||||||
|  | },getQueryHash:function(){var ai={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(aj){ai[aj.split("=").shift()]=aj.split("=").pop();});return ai; | ||||||
|  | },addEventListener:function(aj,ak,ai){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).addEventListener(aj,ak,ai);}},removeEventListener:function(aj,ak,ai){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).removeEventListener(aj,ak,ai); | ||||||
| }}};})(); | }}};})(); | ||||||
		Reference in New Issue
	
	Block a user