slides.min.js 9.1 KB

1
  1. function getSlideEl(a){if(a<0||a>=slideEls.length){return null}else{return slideEls[a]}}function updateSlideClass(a,b){var c=getSlideEl(a);if(!c){return}if(b){c.classList.add(b)}for(var d in SLIDE_CLASSES){if(b!=SLIDE_CLASSES[d]){c.classList.remove(SLIDE_CLASSES[d])}}}function updateSlides(){for(var a=0;a<slideEls.length;a++){switch(a){case curSlide-2:updateSlideClass(a,"far-past");break;case curSlide-1:updateSlideClass(a,"past");break;case curSlide:updateSlideClass(a,"current");break;case curSlide+1:updateSlideClass(a,"next");break;case curSlide+2:updateSlideClass(a,"far-next");break;default:updateSlideClass(a);break}}triggerLeaveEvent(curSlide-1);triggerEnterEvent(curSlide);window.setTimeout(function(){disableSlideFrames(curSlide-2)},301);enableSlideFrames(curSlide-1);enableSlideFrames(curSlide+2);if(isChromeVoxActive()){speakAndSyncToNode(slideEls[curSlide])}updateHash()}function buildNextItem(){var a=slideEls[curSlide].querySelectorAll(".to-build");if(!a.length){return false}a[0].classList.remove("to-build","");if(isChromeVoxActive()){speakAndSyncToNode(a[0])}return true}function prevSlide(){if(curSlide>0){curSlide--;updateSlides()}}function nextSlide(){if(buildNextItem()){return}if(curSlide<slideEls.length-1){curSlide++;updateSlides()}}function triggerEnterEvent(a){var b=getSlideEl(a);if(!b){return}var c=b.getAttribute("onslideenter");if(c){(new Function(c)).call(b)}var d=document.createEvent("Event");d.initEvent("slideenter",true,true);d.slideNumber=a+1;b.dispatchEvent(d)}function triggerLeaveEvent(a){var b=getSlideEl(a);if(!b){return}var c=b.getAttribute("onslideleave");if(c){(new Function(c)).call(b)}var d=document.createEvent("Event");d.initEvent("slideleave",true,true);d.slideNumber=a+1;b.dispatchEvent(d)}function handleTouchStart(a){if(a.touches.length==1){touchDX=0;touchDY=0;touchStartX=a.touches[0].pageX;touchStartY=a.touches[0].pageY;document.body.addEventListener("touchmove",handleTouchMove,true);document.body.addEventListener("touchend",handleTouchEnd,true)}}function handleTouchMove(a){if(a.touches.length>1){cancelTouch()}else{touchDX=a.touches[0].pageX-touchStartX;touchDY=a.touches[0].pageY-touchStartY}}function handleTouchEnd(a){var b=Math.abs(touchDX);var c=Math.abs(touchDY);if(b>PM_TOUCH_SENSITIVITY&&c<b*2/3){if(touchDX>0){prevSlide()}else{nextSlide()}}cancelTouch()}function cancelTouch(){document.body.removeEventListener("touchmove",handleTouchMove,true);document.body.removeEventListener("touchend",handleTouchEnd,true)}function disableSlideFrames(a){var b=getSlideEl(a);if(!b){return}var c=b.getElementsByTagName("iframe");for(var d=0,e;e=c[d];d++){disableFrame(e)}}function enableSlideFrames(a){var b=getSlideEl(a);if(!b){return}var c=b.getElementsByTagName("iframe");for(var d=0,e;e=c[d];d++){enableFrame(e)}}function disableFrame(a){a.src="about:blank"}function enableFrame(a){var b=a._src;if(a.src!=b&&b!="about:blank"){a.src=b}}function setupFrames(){var a=document.querySelectorAll("iframe");for(var b=0,c;c=a[b];b++){c._src=c.src;disableFrame(c)}enableSlideFrames(curSlide);enableSlideFrames(curSlide+1);enableSlideFrames(curSlide+2)}function setupInteraction(){var a=document.createElement("div");a.className="slide-area";a.id="prev-slide-area";a.addEventListener("click",prevSlide,false);document.querySelector("section.slides").appendChild(a);var a=document.createElement("div");a.className="slide-area";a.id="next-slide-area";a.addEventListener("click",nextSlide,false);document.querySelector("section.slides").appendChild(a);document.body.addEventListener("touchstart",handleTouchStart,false)}function isChromeVoxActive(){if(typeof cvox=="undefined"){return false}else{return true}}function speakAndSyncToNode(a){if(!isChromeVoxActive()){return}cvox.ChromeVox.navigationManager.switchToStrategy(cvox.ChromeVoxNavigationManager.STRATEGIES.LINEARDOM,0,true);cvox.ChromeVox.navigationManager.syncToNode(a);cvox.ChromeVoxUserCommands.finishNavCommand("");var b=a;while(b.firstChild){b=b.firstChild}cvox.ChromeVox.navigationManager.syncToNode(b)}function speakNextItem(){if(!isChromeVoxActive()){return}cvox.ChromeVox.navigationManager.switchToStrategy(cvox.ChromeVoxNavigationManager.STRATEGIES.LINEARDOM,0,true);cvox.ChromeVox.navigationManager.next(true);if(!cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),slideEls[curSlide])){var a=slideEls[curSlide];while(a.firstChild){a=a.firstChild}cvox.ChromeVox.navigationManager.syncToNode(a);cvox.ChromeVox.navigationManager.next(true)}cvox.ChromeVoxUserCommands.finishNavCommand("")}function speakPrevItem(){if(!isChromeVoxActive()){return}cvox.ChromeVox.navigationManager.switchToStrategy(cvox.ChromeVoxNavigationManager.STRATEGIES.LINEARDOM,0,true);cvox.ChromeVox.navigationManager.previous(true);if(!cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),slideEls[curSlide])){var a=slideEls[curSlide];while(a.lastChild){a=a.lastChild}cvox.ChromeVox.navigationManager.syncToNode(a);cvox.ChromeVox.navigationManager.previous(true)}cvox.ChromeVoxUserCommands.finishNavCommand("")}function getCurSlideFromHash(){var a=parseInt(location.hash.substr(1));if(a){curSlide=a-1}else{curSlide=0}}function updateHash(){location.replace("#"+(curSlide+1))}function handleBodyKeyDown(a){switch(a.keyCode){case 39:case 13:case 32:case 34:nextSlide();a.preventDefault();break;case 37:case 8:case 33:prevSlide();a.preventDefault();break;case 40:if(isChromeVoxActive()){speakNextItem()}else{nextSlide()}a.preventDefault();break;case 38:if(isChromeVoxActive()){speakPrevItem()}else{prevSlide()}a.preventDefault();break}}function addEventListeners(){document.addEventListener("keydown",handleBodyKeyDown,false)}function addFontStyle(){var a=document.createElement("link");a.rel="stylesheet";a.type="text/css";a.href="http://fonts.googleapis.com/css?family="+"Open+Sans:regular,semibold,italic,italicsemibold|Droid+Sans+Mono";document.body.appendChild(a)}function addGeneralStyle(){var a=document.createElement("link");a.rel="stylesheet";a.type="text/css";a.href=PERMANENT_URL_PREFIX+"styles.css";document.body.appendChild(a);var a=document.createElement("meta");a.name="viewport";a.content="width=1100,height=750";document.querySelector("head").appendChild(a);var a=document.createElement("meta");a.name="apple-mobile-web-app-capable";a.content="yes";document.querySelector("head").appendChild(a)}function makeBuildLists(){for(var a=curSlide,b;b=slideEls[a];a++){var c=b.querySelectorAll(".build > *");for(var d=0,e;e=c[d];d++){if(e.classList){e.classList.add("to-build")}}}}function handleDomLoaded(){slideEls=document.querySelectorAll("section.slides > article");setupFrames();addGeneralStyle();addEventListeners();updateSlides();setupInteraction();makeBuildLists();document.body.classList.add("loaded")}function initialize(){getCurSlideFromHash();if(window["_DEBUG"]){PERMANENT_URL_PREFIX="../"}if(window["_DCL"]){handleDomLoaded()}else{document.addEventListener("DOMContentLoaded",handleDomLoaded,false)}}var PERMANENT_URL_PREFIX="inst/frameworks/html5slides";var SLIDE_CLASSES=["far-past","past","current","next","far-next"];var PM_TOUCH_SENSITIVITY=15;var curSlide;if(typeof document!=="undefined"&&!("classList"in document.createElement("a"))){(function(a){var b="classList",c="prototype",d=(a.HTMLElement||a.Element)[c],e=Object;strTrim=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},arrIndexOf=Array[c].indexOf||function(a){for(var b=0,c=this.length;b<c;b++){if(b in this&&this[b]===a){return b}}return-1},DOMEx=function(a,b){this.name=a;this.code=DOMException[a];this.message=b},checkTokenAndGetIndex=function(a,b){if(b===""){throw new DOMEx("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(b)){throw new DOMEx("INVALID_CHARACTER_ERR","String contains an invalid character")}return arrIndexOf.call(a,b)},ClassList=function(a){var b=strTrim.call(a.className),c=b?b.split(/\s+/):[];for(var d=0,e=c.length;d<e;d++){this.push(c[d])}this._updateClassName=function(){a.className=this.toString()}},classListProto=ClassList[c]=[],classListGetter=function(){return new ClassList(this)};DOMEx[c]=Error[c];classListProto.item=function(a){return this[a]||null};classListProto.contains=function(a){a+="";return checkTokenAndGetIndex(this,a)!==-1};classListProto.add=function(a){a+="";if(checkTokenAndGetIndex(this,a)===-1){this.push(a);this._updateClassName()}};classListProto.remove=function(a){a+="";var b=checkTokenAndGetIndex(this,a);if(b!==-1){this.splice(b,1);this._updateClassName()}};classListProto.toggle=function(a){a+="";if(checkTokenAndGetIndex(this,a)===-1){this.add(a)}else{this.remove(a)}};classListProto.toString=function(){return this.join(" ")};if(e.defineProperty){var f={get:classListGetter,enumerable:true,configurable:true};try{e.defineProperty(d,b,f)}catch(g){if(g.number===-2146823252){f.enumerable=false;e.defineProperty(d,b,f)}}}else if(e[c].__defineGetter__){d.__defineGetter__(b,classListGetter)}})(self)}if(!window["_DEBUG"]&&document.location.href.indexOf("?debug")!==-1){document.addEventListener("DOMContentLoaded",function(){window["_DCL"]=true},false);window["_DEBUG"]=true;var script=document.createElement("script");script.type="text/javascript";script.src="../slides.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(script,s);s.parentNode.removeChild(s)}else{initialize()}