o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1358998783.725319: @value"E {I" class:EFI"BundledAsset;FI"logical_path;FI" notes.js;TI" pathname;FI"C/Users/mkitt/Sites/showboat/vendor/assets/javascripts/notes.js;FI"content_type;FI"application/javascript;FI" mtime;FI"2013-01-23T20:36:00-07:00;FI" length;Fi‰ I" digest;F"%3b5f22e3114153fa5c28f31088d1c8a3I" source;FI"‰ /** * Handles opening of and synchronization with the reveal.js * notes window. */ var RevealNotes = (function() { function openNotes() { var notesPopup = window.open( 'plugin/notes/notes.html', 'reveal.js - Notes', 'width=1120,height=850' ); // Fires when slide is changed Reveal.addEventListener( 'slidechanged', function( event ) { post('slidechanged'); } ); // Fires when a fragment is shown Reveal.addEventListener( 'fragmentshown', function( event ) { post('fragmentshown'); } ); // Fires when a fragment is hidden Reveal.addEventListener( 'fragmenthidden', function( event ) { post('fragmenthidden'); } ); /** * Posts the current slide data to the notes window * * @param {String} eventType Expecting 'slidechanged', 'fragmentshown' * or 'fragmenthidden' set in the events above to define the needed * slideDate. */ function post( eventType ) { var slideElement = Reveal.getCurrentSlide(), messageData; if( eventType === 'slidechanged' ) { var notes = slideElement.querySelector( 'aside.notes' ), indexh = Reveal.getIndices().h, indexv = Reveal.getIndices().v, nextindexh, nextindexv; if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) { nextindexh = indexh; nextindexv = indexv + 1; } else { nextindexh = indexh + 1; nextindexv = 0; } messageData = { notes : notes ? notes.innerHTML : '', indexh : indexh, indexv : indexv, nextindexh : nextindexh, nextindexv : nextindexv, markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false }; } else if( eventType === 'fragmentshown' ) { messageData = { fragment : 'next' }; } else if( eventType === 'fragmenthidden' ) { messageData = { fragment : 'prev' }; } notesPopup.postMessage( JSON.stringify( messageData ), '*' ); } // Navigate to the current slide when the notes are loaded notesPopup.addEventListener( 'load', function( event ) { post('slidechanged'); }, false ); } // If the there's a 'notes' query set, open directly if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) { openNotes(); } // Open the notes when the 's' key is hit document.addEventListener( 'keydown', function( event ) { // Disregard the event if the target is editable or a // modifier is present if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return; if( event.keyCode === 83 ) { event.preventDefault(); openNotes(); } }, false ); return { open: openNotes }; })(); ;FI"required_assets_digest;F"%e1a52906fd98d64b68f4c790ff8717bcI" _version;F"%6776f581a4329e299531e1d52aa59832