document.addEventListener('DOMContentLoaded', function() { var handleKey = function(event) { switch (event.keyCode) { case 39: // right arrow case 13: // Enter case 32: // space case 34: // PgDn nextSlide(); event.preventDefault(); break; case 37: // left arrow case 8: // Backspace case 33: // PgUp prevSlide(); event.preventDefault(); break; } }, handleUpdateSlides = function(slide_index, prev_slide, cur_slide, next_slide) { document.querySelector('#cur_slide_num').innerHTML = Number(slide_index) + 1; // make sure we have a previous and next slide to show; // if not add dummy placeholders if (!prev_slide) { prev_slide = '
'; } if (!next_slide) { next_slide = '
'; } document.querySelector('#slide_container').innerHTML = prev_slide + cur_slide + next_slide; // Copy the presenter notes into place $('#presenter_notes').empty(); $('article.current').find('div.admonition.note').each( function(i, node) { $('#presenter_notes').append($(node).html()); } ); var slides = document.querySelector('section.slides > article'); for (var i=0; i < slides.length; i++) { } }, handleMessage = function(e) { switch (e.data.command) { case 'num_slides': document.querySelector('#num_slides').innerHTML = e.data.content; break; case 'cur_slide': handleUpdateSlides(e.data.content, e.data.prev_slide, e.data.slide, e.data.next_slide); break; } }, nextSlide = function(e) { if (e) { e.preventDefault(); } window.opener.postMessage({command: 'nextSlide'}, '*'); }, prevSlide = function(e) { if (e) { e.preventDefault(); } window.opener.postMessage({command: 'prevSlide'}, '*'); }, init = function(e) { window.addEventListener('message', handleMessage, false); document.addEventListener('keydown', handleKey, false); document.querySelector('#next').addEventListener('click', nextSlide); document.querySelector('#prev').addEventListener('click', prevSlide); window.opener.postMessage({command: 'register'}, '*'); }; init(); }, false);