function sendLog(name, data, event_type) { var message = data || {}; message.chapter = PDF_URL || ''; message.name = 'textbook.pdf.' + name; Logger.log(event_type ? event_type : message.name, message); } // this event is loaded after the others to accurately represent the order of events: // click next -> pagechange $(function() { var first_page = true; var scroll = {timeStamp: 0, direction: null}; $(window).bind('pagechange', function(event) { // log every page render var page = PDFViewerApplication.page; var old_page = event.originalEvent.previousPageNumber; // pagechange is called many times per viewing. if (old_page !== page || first_page) { first_page = false; if ((event.timeStamp - scroll.timeStamp) < 50) { sendLog('page.scrolled', {'page': page, 'direction': scroll.direction}); } sendLog('page.loaded', {'type': 'gotopage', 'old': old_page, 'new': page}, 'book'); scroll.timeStamp = 0; } }); $('#viewerContainer').bind('DOMMouseScroll mousewheel', function(event) { scroll.timeStamp = event.timeStamp; scroll.direction = PDFViewerApplication.pdfViewer.scroll.down ? 'down' : 'up'; }); }); $('#viewThumbnail,#sidebarToggle').on('click', function() { sendLog('thumbnails.toggled', {'page': PDFViewerApplication.page}); }); $('#thumbnailView a').live('click', function() { sendLog('thumbnail.navigated', {'page': $('#thumbnailView a').index(this) + 1, 'thumbnail_title': $(this).attr('title')}); }); $('#viewOutline').on('click', function() { sendLog('outline.toggled', {'page': PDFViewerApplication.page}); }); $('#previous').on('click', function() { sendLog('page.navigatednext', {'type': 'prevpage', 'new': PDFViewerApplication.page - 1}, 'book'); }); $('#next').on('click', function() { sendLog('page.navigatednext', {'type': 'nextpage', 'new': PDFViewerApplication.page + 1}, 'book'); }); $('#zoomIn,#zoomOut').on('click', function() { sendLog('zoom.buttons.changed', {'direction': $(this).attr('id') == 'zoomIn' ? 'in' : 'out', 'page': PDFViewerApplication.page}); }); $('#pageNumber').on('change', function() { sendLog('page.navigated', {'page': $(this).val()}); }); var old_amount = 1; $(window).bind('scalechange', function(event) { var amount = event.originalEvent.scale; if (amount !== old_amount) { sendLog('display.scaled', {'amount': amount, 'page': PDFViewerApplication.page}); old_amount = amount; } }); $('#scaleSelect').on('change', function() { sendLog('zoom.menu.changed', {'amount': $('#scaleSelect').val(), 'page': PDFViewerApplication.page}); }); var search_event = null; $(window).bind('find findhighlightallchange findagain findcasesensitivitychange', function(event) { if (search_event && event.type == 'find') { clearTimeout(search_event); } search_event = setTimeout(function() { var message = event.originalEvent.detail; message.status = $('#findMsg').text(); message.page = PDFViewerApplication.page; var event_name = 'search'; switch (event.type) { case 'find': event_name += '.executed'; break; case 'findhighlightallchange': event_name += '.highlight.toggled'; break; case 'findagain': event_name += '.navigatednext'; break; case 'findcasesensitivitychange': event_name += 'casesensitivity.toggled'; break; } sendLog(event_name, message); }, 500); });