fa23-si/js/reveal.min.js
2013-01-06 00:11:32 -05:00

8 lines
16 KiB
JavaScript

/*!
* reveal.js 2.2 (2013-01-02, 09:12)
* http://lab.hakim.se/reveal-js
* MIT licensed
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
var Reveal=function(){"use strict";function s(a){return m||l?(window.addEventListener("load",I,!1),A(d,a),u(),v(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){if(k.theme=document.querySelector("#theme"),k.wrapper=document.querySelector(".reveal"),k.slides=document.querySelector(".reveal .slides"),!k.wrapper.querySelector(".progress")&&d.progress){var a=document.createElement("div");a.classList.add("progress"),a.innerHTML="<span></span>",k.wrapper.appendChild(a)}if(!k.wrapper.querySelector(".controls")&&d.controls){var b=document.createElement("aside");b.classList.add("controls"),b.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>',k.wrapper.appendChild(b)}if(!k.wrapper.querySelector(".state-background")){var c=document.createElement("div");c.classList.add("state-background"),k.wrapper.appendChild(c)}if(!k.wrapper.querySelector(".pause-overlay")){var e=document.createElement("div");e.classList.add("pause-overlay"),k.wrapper.appendChild(e)}k.progress=document.querySelector(".reveal .progress"),k.progressbar=document.querySelector(".reveal .progress span"),d.controls&&(k.controls=document.querySelector(".reveal .controls"),k.controlsLeft=B(document.querySelectorAll(".navigate-left")),k.controlsRight=B(document.querySelectorAll(".navigate-right")),k.controlsUp=B(document.querySelectorAll(".navigate-up")),k.controlsDown=B(document.querySelectorAll(".navigate-down")),k.controlsPrev=B(document.querySelectorAll(".navigate-prev")),k.controlsNext=B(document.querySelectorAll(".navigate-next")))}function u(){navigator.userAgent.match(/(iphone|ipod)/i)&&(document.documentElement.style.overflow="scroll",document.body.style.height="120%",window.addEventListener("load",F,!1),window.addEventListener("orientationchange",F,!1))}function v(){function g(){b.length&&head.js.apply(null,b),w()}for(var a=[],b=[],c=0,e=d.dependencies.length;e>c;c++){var f=d.dependencies[c];(!f.condition||f.condition())&&(f.async?b.push(f.src):a.push(f.src),"function"==typeof f.callback&&head.ready(f.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],f.callback))}a.length?(head.ready(g),head.js.apply(null,a)):g()}function w(){t(),y(),x(),I(),Z(),cb(),setTimeout(function(){G("ready",{indexh:f,indexv:g,currentSlide:i})},1)}function x(){if(l===!1&&(d.transition="linear"),d.controls&&k.controls&&(k.controls.style.display="block"),d.progress&&k.progress&&(k.progress.style.display="block"),"default"!==d.transition&&k.wrapper.classList.add(d.transition),d.rtl&&k.wrapper.classList.add("rtl"),d.center&&k.wrapper.classList.add("center"),d.mouseWheel&&(document.addEventListener("DOMMouseScroll",nb,!1),document.addEventListener("mousewheel",nb,!1)),d.rollingLinks&&H(),d.theme&&k.theme){var a=k.theme.getAttribute("href"),b=/[^\/]*?(?=\.css)/,c=a.match(b)[0];d.theme!==c&&(a=a.replace(b,d.theme),k.theme.setAttribute("href",a))}}function y(){if(document.addEventListener("touchstart",kb,!1),document.addEventListener("touchmove",lb,!1),document.addEventListener("touchend",mb,!1),window.addEventListener("hashchange",pb,!1),window.addEventListener("resize",qb,!1),d.keyboard&&document.addEventListener("keydown",jb,!1),d.progress&&k.progress&&k.progress.addEventListener("click",E(ob),!1),d.controls&&k.controls){var a="ontouchstart"in window?"touchstart":"click";k.controlsLeft.forEach(function(b){b.addEventListener(a,E(db),!1)}),k.controlsRight.forEach(function(b){b.addEventListener(a,E(eb),!1)}),k.controlsUp.forEach(function(b){b.addEventListener(a,E(fb),!1)}),k.controlsDown.forEach(function(b){b.addEventListener(a,E(gb),!1)}),k.controlsPrev.forEach(function(b){b.addEventListener(a,E(hb),!1)}),k.controlsNext.forEach(function(b){b.addEventListener(a,E(ib),!1)})}}function z(){if(document.removeEventListener("keydown",jb,!1),document.removeEventListener("touchstart",kb,!1),document.removeEventListener("touchmove",lb,!1),document.removeEventListener("touchend",mb,!1),window.removeEventListener("hashchange",pb,!1),window.removeEventListener("resize",qb,!1),d.progress&&k.progress&&k.progress.removeEventListener("click",E(ob),!1),d.controls&&k.controls){var a="ontouchstart"in window?"touchstart":"click";k.controlsLeft.forEach(function(b){b.removeEventListener(a,E(db),!1)}),k.controlsRight.forEach(function(b){b.removeEventListener(a,E(eb),!1)}),k.controlsUp.forEach(function(b){b.removeEventListener(a,E(fb),!1)}),k.controlsDown.forEach(function(b){b.removeEventListener(a,E(gb),!1)}),k.controlsPrev.forEach(function(b){b.removeEventListener(a,E(hb),!1)}),k.controlsNext.forEach(function(b){b.removeEventListener(a,E(ib),!1)})}}function A(a,b){for(var c in b)a[c]=b[c]}function B(a){return Array.prototype.slice.call(a)}function D(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function E(a){return function(b){b.preventDefault(),a.call(null,b)}}function F(){setTimeout(function(){window.scrollTo(0,1)},0)}function G(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),A(c,b),k.wrapper.dispatchEvent(c)}function H(){if(l&&!("msPerspective"in document.body.style))for(var b=document.querySelectorAll(a+" a:not(.image)"),c=0,d=b.length;d>c;c++){var e=b[c];if(!(!e.textContent||e.querySelector("img")||e.className&&e.classList.contains(e,"roll"))){var f=document.createElement("span");f.setAttribute("data-title",e.text),f.innerHTML=e.innerHTML,e.classList.add("roll"),e.innerHTML="",e.appendChild(f)}}}function I(){if(d.center)for(var b=B(document.querySelectorAll(a)),c=-k.wrapper.offsetHeight/2,e=0,f=b.length;f>e;e++){var g=b[e];"none"!==g.style.display&&(g.style.top=g.classList.contains("stack")?0:Math.max(-(g.offsetHeight/2)-20,c)+"px")}}function J(a,b){a&&a.setAttribute("data-previous-indexv",b||0)}function K(a){return a&&a.classList.contains("stack")?parseInt(a.getAttribute("data-previous-indexv")||0,10):0}function L(){d.overview&&(k.wrapper.classList.add("overview"),clearTimeout(q),q=setTimeout(function(){for(var a=document.querySelectorAll(b),c=0,d=a.length;d>c;c++){var e=a[c],h="translateZ(-2500px) translate("+105*(c-f)+"%, 0%)";if(e.setAttribute("data-index-h",c),e.style.display="block",e.style.WebkitTransform=h,e.style.MozTransform=h,e.style.msTransform=h,e.style.OTransform=h,e.style.transform=h,e.classList.contains("stack"))for(var i=e.querySelectorAll("section"),j=0,k=i.length;k>j;j++){var l=c===f?g:K(e),m=i[j],n="translate(0%, "+105*(j-l)+"%)";m.setAttribute("data-index-h",c),m.setAttribute("data-index-v",j),m.style.display="block",m.style.WebkitTransform=n,m.style.MozTransform=n,m.style.msTransform=n,m.style.OTransform=n,m.style.transform=n,m.addEventListener("click",rb,!0)}else e.addEventListener("click",rb,!0)}I()},10))}function M(){if(d.overview){clearTimeout(q),k.wrapper.classList.remove("overview");for(var b=B(document.querySelectorAll(a)),c=0,e=b.length;e>c;c++){var h=b[c];h.style.display="",h.style.WebkitTransform="",h.style.MozTransform="",h.style.msTransform="",h.style.OTransform="",h.style.transform="",h.removeEventListener("click",rb,!0)}U(f,g)}}function N(a){"boolean"==typeof a?a?L():M():O()?M():L()}function O(){return k.wrapper.classList.contains("overview")}function P(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function Q(){k.wrapper.classList.add("paused")}function R(){k.wrapper.classList.remove("paused")}function S(){T()?R():Q()}function T(){return k.wrapper.classList.contains("paused")}function U(a,d,e){h=i;var k=document.querySelectorAll(b);void 0===d&&(d=K(k[a])),h&&h.parentNode&&h.parentNode.classList.contains("stack")&&J(h.parentNode,g);var l=j.concat();j.length=0;var m=f,n=g;f=V(b,void 0===a?f:a),g=V(c,void 0===d?g:d),I();a:for(var o=0,p=j.length;p>o;o++){for(var q=0;l.length>q;q++)if(l[q]===j[o]){l.splice(q,1);continue a}document.documentElement.classList.add(j[o]),G(j[o])}for(;l.length;)document.documentElement.classList.remove(l.pop());O()&&L(),$(1500);var r=k[f],s=r.querySelectorAll("section");if(i=s[g]||r,(f!==m||g!==n)&&e){var t=i.querySelectorAll(".fragment");B(t).forEach(function(a,b){e>b?a.classList.add("visible"):a.classList.remove("visible")})}f!==m||g!==n?G("slidechanged",{indexh:f,indexv:g,previousSlide:h,currentSlide:i}):h=null,h&&h.classList.remove("present"),X(),W()}function V(a,b){var c=B(document.querySelectorAll(a)),f=c.length;if(f){d.loop&&(b%=f,0>b&&(b=f+b)),b=Math.max(Math.min(b,f-1),0);for(var g=0;f>g;g++){var h=c[g];if(O()===!1){var i=Math.abs((b-g)%(f-3))||0;h.style.display=i>3?"none":"block"}c[g].classList.remove("past"),c[g].classList.remove("present"),c[g].classList.remove("future"),b>g?c[g].classList.add("past"):g>b&&c[g].classList.add("future"),h.querySelector("section")&&c[g].classList.add("stack")}c[b].classList.add("present");var k=c[b].getAttribute("data-state");k&&(j=j.concat(k.split(" ")));var l=c[b].getAttribute("data-autoslide");e=l?parseInt(l,10):d.autoSlide}else b=0;return b}function W(){if(d.progress&&k.progress){var c=B(document.querySelectorAll(b)),e=document.querySelectorAll(a+":not(.stack)").length,f=0;a:for(var g=0;c.length>g;g++){for(var h=c[g],i=B(h.querySelectorAll("section")),j=0;i.length>j;j++){if(i[j].classList.contains("present"))break a;f++}if(h.classList.contains("present"))break;h.classList.contains("stack")===!1&&f++}k.progressbar.style.width=f/(e-1)*window.innerWidth+"px"}}function X(){if(d.controls&&k.controls){var a=Y();k.controlsLeft.concat(k.controlsRight).concat(k.controlsUp).concat(k.controlsDown).concat(k.controlsPrev).concat(k.controlsNext).forEach(function(a){a.classList.remove("enabled")}),a.left&&k.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&k.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&k.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&k.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&k.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&k.controlsNext.forEach(function(a){a.classList.add("enabled")})}}function Y(){var a=document.querySelectorAll(b),d=document.querySelectorAll(c);return{left:f>0,right:a.length-1>f,up:g>0,down:d.length-1>g}}function Z(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);U(e.h,e.v)}else U(f,g)}else{var h=parseInt(b[0],10)||0,i=parseInt(b[1],10)||0;U(h,i)}}function $(a){if(d.history)if(clearTimeout(p),"number"==typeof a)p=setTimeout($,a);else{var b="/";i&&"string"==typeof i.getAttribute("id")?b="/"+i.getAttribute("id"):((f>0||g>0)&&(b+=f),g>0&&(b+="/"+g)),window.location.hash=b}}function _(a){var c=f,d=g;if(a){var e=!!a.parentNode.nodeName.match(/section/gi),h=e?a.parentNode:a,i=B(document.querySelectorAll(b));c=Math.max(i.indexOf(h),0),e&&(d=Math.max(B(a.parentNode.querySelectorAll("section")).indexOf(a),0))}return{h:c,v:d}}function ab(){if(document.querySelector(c+".present")){var a=document.querySelectorAll(c+".present .fragment:not(.visible)");if(a.length)return a[0].classList.add("visible"),G("fragmentshown",{fragment:a[0]}),!0}else{var d=document.querySelectorAll(b+".present .fragment:not(.visible)");if(d.length)return d[0].classList.add("visible"),G("fragmentshown",{fragment:d[0]}),!0}return!1}function bb(){if(document.querySelector(c+".present")){var a=document.querySelectorAll(c+".present .fragment.visible");if(a.length)return a[a.length-1].classList.remove("visible"),G("fragmenthidden",{fragment:a[a.length-1]}),!0}else{var d=document.querySelectorAll(b+".present .fragment.visible");if(d.length)return d[d.length-1].classList.remove("visible"),G("fragmenthidden",{fragment:d[d.length-1]}),!0}return!1}function cb(){clearTimeout(o),e&&(o=setTimeout(ib,e))}function db(){(Y().left&&O()||bb()===!1)&&U(f-1)}function eb(){(Y().right&&O()||ab()===!1)&&U(f+1)}function fb(){(Y().up&&O()||bb()===!1)&&U(f,g-1)}function gb(){(Y().down&&O()||ab()===!1)&&U(f,g+1)}function hb(){if(bb()===!1)if(Y().up)fb();else{var a=document.querySelector(b+".past:nth-child("+f+")");a&&(g=a.querySelectorAll("section").length+1||void 0,f--,U())}}function ib(){ab()===!1&&(Y().down?gb():eb()),cb()}function jb(a){document.activeElement;var c=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(c||a.shiftKey||a.altKey||a.ctrlKey||a.metaKey)){var d=!0;switch(a.keyCode){case 80:case 33:hb();break;case 78:case 34:ib();break;case 72:case 37:db();break;case 76:case 39:eb();break;case 75:case 38:fb();break;case 74:case 40:gb();break;case 36:U(0);break;case 35:U(Number.MAX_VALUE);break;case 32:O()?M():ib();break;case 13:O()?M():d=!1;break;case 66:case 190:S();break;case 70:P();break;default:d=!1}d?a.preventDefault():27===a.keyCode&&l&&(N(),a.preventDefault()),cb()}}function kb(a){r.startX=a.touches[0].clientX,r.startY=a.touches[0].clientY,r.startCount=a.touches.length,2===a.touches.length&&d.overview&&(r.startSpan=D({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:r.startX,y:r.startY}))}function lb(a){if(r.handled)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===r.startCount&&d.overview){var e=D({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:r.startX,y:r.startY});Math.abs(r.startSpan-e)>r.threshold&&(r.handled=!0,r.startSpan>e?L():M()),a.preventDefault()}else if(1===a.touches.length&&2!==r.startCount){var f=b-r.startX,g=c-r.startY;f>r.threshold&&Math.abs(f)>Math.abs(g)?(r.handled=!0,db()):-r.threshold>f&&Math.abs(f)>Math.abs(g)?(r.handled=!0,eb()):g>r.threshold?(r.handled=!0,fb()):-r.threshold>g&&(r.handled=!0,gb()),a.preventDefault()}}}function mb(){r.handled=!1}function nb(a){clearTimeout(n),n=setTimeout(function(){var b=a.detail||-a.wheelDelta;b>0?ib():hb()},100)}function ob(a){var c=B(document.querySelectorAll(b)).length,d=Math.floor(a.clientX/k.wrapper.offsetWidth*c);U(d)}function pb(){Z()}function qb(){I()}function rb(a){if(O()){a.preventDefault(),M();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b.nodeName.match(/section/gi)){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);U(c,d)}}}var h,i,a=".reveal .slides section",b=".reveal .slides>section",c=".reveal .slides>section.present>section",d={controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,loop:!1,rtl:!1,autoSlide:0,mouseWheel:!1,rollingLinks:!0,theme:null,transition:"default",dependencies:[]},e=d.autoSlide,f=0,g=0,j=[],k={},l="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,m="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,n=0,o=0,p=0,q=0,r={startX:0,startY:0,startSpan:0,startCount:0,handled:!1,threshold:80};return{initialize:s,slide:U,left:db,right:eb,up:fb,down:gb,prev:hb,next:ib,prevFragment:bb,nextFragment:ab,navigateTo:U,navigateLeft:db,navigateRight:eb,navigateUp:fb,navigateDown:gb,navigatePrev:hb,navigateNext:ib,toggleOverview:N,addEventListeners:y,removeEventListeners:z,getIndices:_,getPreviousSlide:function(){return h},getCurrentSlide:function(){return i},getQueryHash:function(){var a={};return location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()}),a},addEventListener:function(a,b,c){"addEventListener"in window&&(k.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(k.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}();