questia.Package( "coreweb.reader" ); questia.Import("coreweb.common.*"); coreweb.reader.globalSelectedText =''; //Key constants var key = { KEY_PAGE_UP: 33, KEY_PAGE_DOWN: 34, KEY_LEFT_ARROW: 37, KEY_UP_ARROW: 38, KEY_RIGHT_ARROW: 39, KEY_DOWN_ARROW: 40 } coreweb.reader.onKey = function(evt) { var keyCode = evt.value; if(keyCode==key.KEY_PAGE_UP || keyCode==key.KEY_LEFT_ARROW){ questia.Events.notify(this,'page.reader','prev') return false; } if( keyCode==key.KEY_PAGE_DOWN || keyCode==key.KEY_RIGHT_ARROW){ questia.Events.notify(this,'page.reader','next') return false; } } coreweb.reader.previousPage = function(evt) { window.controlFrame.location.href="/reader/action/prev/"+questia.Dictionary.reader.docId; } coreweb.reader.nextPage = function(evt) { window.controlFrame.location.href="/reader/action/next/"+questia.Dictionary.reader.docId; } /** * Goto page number in same book */ coreweb.reader.gotoPage = function(evt) { window.controlFrame.location.href="/reader/action/gotoPage/" + evt.value; } /** * Goto docid in same book. */ coreweb.reader.gotoDocId = function(evt) { window.controlFrame.location.href="/reader/action/gotoDocId/" + evt.value; } coreweb.reader.docIdClicked = function( docId ) { if (parent != self ) { parent.window.controlFrame.location.href="/reader/action/gotoDocId/" + docId; } else { window.controlFrame.location.href="/reader/action/gotoDocId/" + docId; } } coreweb.reader.clearHighlight = function(evt){ // var offset = document.getElementById("innerPageArea").scrollTop; //window.controlFrame.location.href="/reader/action/text/clearHighlight/?offset="+offset; window.controlFrame.location.href="/reader/action/text/clearHighlight"; //Update message var msg = document.getElementById("clearSearch"); if(window.controlFrame.questia.Dictionary.innerReaderArea.showSearchResults){ msg.innerHTML = "Show Search Highlights"; }else{ msg.innerHTML = "Clear Search Highlights"; } } //Checks if the the current page is bookmarked and if so, show the bookmark icon. coreweb.reader.checkBookmark = function() { var icon = document.getElementById("bookmarkIcon"); if ( icon ) { if(questia.Dictionary.reader.isBookmarked){ icon.style.visibility = 'visible'; }else{ icon.style.visibility = 'hidden'; } } } coreweb.reader.bookmarkPage = function(evt) { var icon = document.getElementById("bookmarkIcon"); icon.style.visibility=evt.value; } coreweb.reader.openImage = function(docId,imageName,pageNum){ var url="/ImageViewer.qst?action=1&docId="+docId+"&imageName=" + imageName + "&pageNo=" + pageNum; coreweb.common.openWindow(url, 'Image', 750,550); } coreweb.reader.updateHeightStyle = function(height,selector) { var dynDiv = coreweb.common.ComponentUtils.getElementsByClassName(selector,'div'); if(dynDiv){ for(var i=0;i 0 ) { for (var i=0; i < dhdivs.length; i++) { dhdivs[i].style.height = dhheight + 'px'; } } navPaneWidth = navPaneContainer.offsetWidth; } } document.getElementById( "tocContainer" ).style.height = mainHeight + 'px'; var readerWidth = browserDims.width - coreweb.common.ComponentUtils.getPosition( "readerContainer" ).left; //var pageAreaId = "innerPageArea"; var pageAreaId = "controlFrame"; var pageArea = document.getElementById( pageAreaId ); var innerPagePos = coreweb.common.ComponentUtils.getPosition( pageAreaId ); var innerHeight = browserDims.height - innerPagePos.top; /** nextPane and prevPane are the long dark nav buttons to left and right of read area */ document.getElementById( "prevPane" ).style.height = innerHeight + 'px'; document.getElementById( "nextPane" ).style.height = innerHeight + 'px'; /** readerContainer contains the innerPageArea, navBar, prevPane and nextPane */ document.getElementById( "readerContainer" ).style.height = mainHeight + 'px'; document.getElementById( "readerContainer" ).style.width = readerWidth + 'px'; document.getElementById( "readerNavbar" ).style.width = readerWidth + 'px'; /** account for padding difference in innerPageArea on IE6 and Netscape-firefox mode */ if (coreweb.common.Browser.isBrowser("ie.windows < 7 || netscape") ) { pageArea.style.width = readerWidth - 36 + 'px'; pageArea.style.height = innerHeight - 2 + 'px'; } else { /** scrollable page content area - does not include nextPane and prevPane */ pageArea.style.width = readerWidth - 34 + 'px'; pageArea.style.height = innerHeight - 1 + 'px'; } /** div contains the ads at the top */ var adbar = document.getElementById( "adBar" ); if ( adbar ) { adbar.style.width = browserDims.width - 20 + 'px'; } if ( firstTime && (coreweb.common.Browser.isBrowser("netscape") || coreweb.common.Browser.isBrowser("firefox")) ) { /** resize again for netscape in 'firefox' mode to account for scrollbars */ coreweb.reader.resize( false ); } questia.Events.notify(this,'page.reader','resize'); } coreweb.reader.refreshAd = function (){ if(window.vAdFrame){ window.vAdFrame.location.href = '/app?service=page&page=/coreweb/reader/sponsoredAdVertical'; } if(window.hAdFrame){ window.hAdFrame.location.href = '/app?service=page&page=/coreweb/reader/sponsoredAdHorizontal'; } } coreweb.reader.initialize = function() { questia.Events.register( 'page.reader', 'prev', coreweb.reader.previousPage ); questia.Events.register( 'page.reader', 'next', coreweb.reader.nextPage ); questia.Events.register( 'page.reader', 'clearHL', coreweb.reader.clearHighlight); questia.Events.register( 'page.reader', 'bookmark', coreweb.reader.bookmarkPage ); questia.Events.register( 'page.reader', 'navpane.open', coreweb.reader.gotoDocId); questia.Events.register( 'page.reader', 'gotoPage', coreweb.reader.gotoPage ); questia.Events.register( 'page.reader', 'gotoDocId', coreweb.reader.gotoDocId ); questia.Events.register( 'page.reader', 'update', coreweb.reader.updateDictionary); questia.Events.register( 'page.reader', 'update', coreweb.reader.refreshAd); questia.Events.register( 'page.reader', 'embeddedLink', coreweb.reader.embeddedLinkClicked ); questia.Events.register( 'page.reader', 'keyEvent', coreweb.reader.onKey ); coreweb.reader.checkBookmark(); if ( !questia.Dictionary.reader.navPaneVisible ) { coreweb.reader.hideTOC(true); } if ( questia.Dictionary.reader.fullscreen ) { coreweb.reader.showFullScreen(true); } questia.Events.notify(this,'page.reader','update'); window.onresize=coreweb.reader.resize; window.onresize(); /** neede for safari */ setTimeout( 'window.onresize()', 1000 ); // listens for any navigation keypress activity $(document).keydown( function(e) { questia.Events.notify(this,'page.reader','keyEvent', e.which ); }); }