function BookEvents_Wire(){
UTILS_AddHandler(BV_oBook,"mousedown",function(e){book_OnMouseDown(e)});
UTILS_AddHandler(BV_oBook,"mouseup",function(e){book_OnMouseUp(e)});
UTILS_AddHandler(BV_oBook,"mousemove",function(e){book_OnMouseMove(e)});
UTILS_AddHandler(BV_oBook,"scroll",function(e){return book_OnScroll(e)});
}
function book_OnScroll(e){
if(BV_bMarkerScriptsLoaded)BV_AdjustMarkerBubblePosition("book_OnScroll");
if(BV_nLoadTimeoutID!=-1){
clearTimeout(BV_nLoadTimeoutID);
clearTimeout(BV_nLoadInHighQualityTimeoutID);
}
BV_nLoadTimeoutID=setTimeout("PageContent_LoadPagesInView(false); PageContent_UnloadPagesOutOfView();",100);
BV_nLoadInHighQualityTimeoutID=setTimeout("PageContent_LoadHighQualityPagesInView();",BV_LoadHighQualityPagesInViewDelay);
if(BV_nUpdateUrlTimeoutID!=-1)
clearTimeout(BV_nUpdateUrlTimeoutID);
BV_nUpdateUrlTimeoutID=setTimeout("BV_ComputePagesInView(true)",300);
return false;
}
function book_OnMouseDown(e){
if(window.event)e=window.event;
if(!BV_bInNewMarkerState&&!BV_bInBubbleEditMode){
BV_HideMarkerBubble("book_OnMouseDown",false);
}
else{
BV_AdjustMarkerBubblePosition("book_OnMouseDown");
BV_oBook.focus();
}
if(BV_sActiveTool==BV_DRAG){
book_StartDrag(e);
return false;
}
return true;
}
function book_OnMouseMove(e){
if(Notes_oDraggedWindowParams!=null)
NotesWindow_ContinueDragMarker(e);
if(window.event)e=window.event;
switch(BV_sActiveTool){
case BV_DRAG:book_ContinueDrag();break;
case BV_SELECT:BV_ContinueSelection(e);break;
case BV_COPY:BV_ContinueCopySelection(e);break;
case BV_ISOLATE:BV_ContinueIsolateSelection();break;
case BV_LINK:BV_ContinueSelection(e);break;
}
return true;
}
function book_OnMouseUp(e){
switch(BV_sActiveTool){
case BV_DRAG:book_EndDrag();break;
case BV_SELECT:BV_EndSelection(e);break;
case BV_COPY:BV_EndCopySelection(e);break;
case BV_ISOLATE:BV_EndIsolateSelection(e);break;
case BV_LINK:BV_EndSelection(e);break;
}
return true;
}
function book_StartDrag(event){
if(mousePos==null)
return;
var bHScroll=(BV_oBook.clientWidth!=BV_oBook.scrollWidth);
var bVScroll=(BV_oBook.clientHeight!=BV_oBook.scrollHeight);
var oBookPos=UTILS_GetElementPos(BV_oBook);
var nBookWidth=BV_oBook.style.width.replace('px','')*1;
if(isRTL()){
if(BV_ScrollbarIsOnTheLeftSide){
if(bVScroll&&(mousePos.x<(BV_nScrollbarWidth+12)||mousePos.x>(nBookWidth+BV_nScrollbarWidth-12))){
return;
}
}else{
if(bVScroll&&(mousePos.x<BV_nScrollbarWidth+12||mousePos.x>(nBookWidth-BV_nScrollbarWidth-12))){
return;
}
}
}else{
var nTabsWidth=Math.round((clientDimensions.width-15)*Splitter_fRatio);
if(bVScroll&&(mousePos.x<nTabsWidth)||mousePos.x>nTabsWidth+nBookWidth+12){
return;
}
}
if(bHScroll&&(mousePos.y-oBookPos.nTop)>BV_oBook.clientHeight)
return;
if(isIE)
BV_oBook.setCapture();
else
UTILS_PreventBrowserDefaultAction(event);
BV_nStartDragMouseLeft=mousePos.x;
BV_nStartDragMouseTop=mousePos.y;
BV_nStartDragScrollLeft=BV_oBook.scrollLeft;
BV_nStartDragScrollTop=BV_oBook.scrollTop;
BV_bOnDrag=true;
}
function book_ContinueDrag(){
if(BV_bOnDrag){
BV_oBook.scrollLeft=BV_nStartDragScrollLeft+(BV_nStartDragMouseLeft-mousePos.x);
BV_oBook.scrollTop=BV_nStartDragScrollTop+(BV_nStartDragMouseTop-mousePos.y);
}
}
function book_EndDrag(){
if(BV_bOnDrag){
BV_bOnDrag=false;
if(isIE)
BV_oBook.releaseCapture();
}
}function BV_Init(nBookID,nTotalPages,bSomePagesAreClosed,bWireframeMode,nGotoPageNum,nGotoPageOffset,
nDefaultPageWidth,nDefaultPageHeight,sAutoFitMode,sBookLayout,nSizeStep,
sSearchText,sViewerFilesPath,bAdminUser,bIsAuthenticated,
sCdnDomain,nCdnServers,bHasTOC,bSupportsLayersInViewer,
bCanPublishHighlights,bCanPublishPushpins,bCanViewHighlights,bCanViewPushpins){
if(!VerifyTSParamIsValid())
return;
BV_InitElementRefs();
BV_nBookID=nBookID;
BV_bSomePagesAreClosed=bSomePagesAreClosed;
BV_nTotalPages=nTotalPages;
BV_nPageDefaultImageWidth=nDefaultPageWidth;
BV_nPageDefaultImageHeight=nDefaultPageHeight;
BV_nCurrentSizeStep=nSizeStep;
BV_sAutoFitMode=sAutoFitMode;
BV_sSearchText=sSearchText;
BV_nGotoPageNum=nGotoPageNum;
BV_nTopPageInView=(nGotoPageNum>0?nGotoPageNum-1:0);
BV_sViewerFilesPath=sViewerFilesPath;
BV_nScrollbarWidth=UTILS_GetScrollbarWidth();
BV_bAdminUser=bAdminUser;
BV_nCdnServers=nCdnServers;
BV_sCdnDomain=adjustCdnPattern(sCdnDomain);
BV_bHasTOC=bHasTOC;
BV_bSupportsLayersInViewer=bSupportsLayersInViewer;
BV_bCanPublishHighlights=bCanPublishHighlights;
BV_bCanPublishPushpins=bCanPublishPushpins;
BV_bCanViewPublishedHighlights=bCanViewHighlights;
BV_bCanViewPublishedPushpins=bCanViewPushpins;
var rem_nTopPageInView=BV_nTopPageInView;
var rem_nOffsetInPage=0;
var n=location.href.lastIndexOf("#");
var rem_nMarkerPageNum=0,rem_nMarkerID=0;
if(n!=-1){
BV_sHashOnLoad=location.href.substr(n+1);
var aParts=BV_sHashOnLoad.split(".");
if(aParts[0]=="ShowMarker"){
rem_nMarkerPageNum=aParts[1];
rem_nMarkerID=aParts[2];
}
else{
if(aParts.length>3){
try{
rem_nTopPageInView=eval(aParts[0])-1;
rem_nOffsetInPage=eval(aParts[1]);
var zoomOrStep=(typeof(aParts[2])=="undefined")?BV_nCurrentSizeStep:eval(aParts[2]);
if(zoomOrStep<=BV_nMaxSizeStep)
BV_nCurrentSizeStep=zoomOrStep;
BV_sAutoFitMode=(typeof(aParts[3])=="undefined")?sAutoFitMode:aParts[3];
BV_sBookLayout=(typeof(aParts[4])=="undefined")?sBookLayout:aParts[4];
BookPages_SetWidthAndHeightToSelectedSizeStep();
}catch(e){}
}
}
}
if(rem_nTopPageInView==0)
rem_nTopPageInView=BV_nTopPageInView;
BV_oBook.style.cursor="all-scroll";
Viewer_OnLoad(rem_nTopPageInView,rem_nOffsetInPage,bIsAuthenticated,rem_nMarkerPageNum,rem_nMarkerID);
if(BV_bMarkerScriptsLoaded)MarkersMgr_Init();
}
function VerifyTSParamIsValid(){
qs();
var sFullUrl=location.href+'';
if(sFullUrl.indexOf("#")>1){
var aParts=sFullUrl.split("#")[1].split(".");
if(aParts[0]=="ShowMarker")
return true;
if(typeof(qsParm["ts"])=="undefined"){
sFullUrl=sFullUrl.replace("#","&ts="+getTimestamp()+"#");
window.location.replace(sFullUrl);
return false;
}else{
var tsParts=qsParm["ts"].split(".");
var currTs=new Date();
currTs.setFullYear(tsParts[0]*1);
currTs.setMonth(tsParts[1]*1);
currTs.setDate(tsParts[2]*1);
currTs.setHours(tsParts[3]*1);
currTs.setMinutes(tsParts[4]*1,tsParts[5]*1,tsParts[6]*1);
var now=new Date();
if(Math.abs(Math.ceil(currTs.getTime()-now.getTime()))>30000){
sFullUrl=sFullUrl.replace("&ts="+qsParm["ts"]+"#","&ts="+getTimestamp()+"#");
window.location.replace(sFullUrl);
return false;
}
}
}
return true;
}
function Bookinit_ClearBookContents(){
if(isIE){
while(BV_oBook.children.length>0)
BV_oBook.removeChild(BV_oBook.lastChild);
}
else{
while(BV_oBook.childNodes.length>0)
BV_oBook.removeChild(BV_oBook.lastChild);
}
}
function Bookinit_InitBookPages(rem_nTopPageInView,rem_nOffsetInPage,bIsAuthenticated,nMarkerPageNum,nMarkerID){
var nPages=BV_nTotalPages;
var oBookPages=document.createDocumentFragment();
for(var nPageIndex=0;nPageIndex<nPages;nPageIndex++){
oBookPages.appendChild(bookinit_CreateBookPage(nPageIndex));
}
BV_oBook.appendChild(oBookPages);
BookPagesState_SetDefaultFlagsForAllPages();
BV_bAllPagesAreLoaded=true;
window.setTimeout("bookinit_CompleteBookInitialization("+rem_nTopPageInView+", "+rem_nOffsetInPage+", "+bIsAuthenticated+", "+nMarkerPageNum+", "+nMarkerID+")",250);
}
function bookinit_CreateBookPage(nPageIndex){
var oPageInfo=oPagesInfo.pages[nPageIndex];
aBookPagesInfo[oPageInfo.pid]=nPageIndex;
if(oPageInfo!=null){
var oImage=UTILS_CreateElement("DIV");
oImage.id="BV_oPage_"+nPageIndex;
oImage.className="BV_oImage";
var oPage=UTILS_CreateElement("DIV");
oPage.id="BV_oPageWrapper_"+nPageIndex;
oPage.className="BV_oPage";
oPage.appendChild(oImage);
return oPage;
}
}
function bookinit_CompleteBookInitialization(rem_nTopPageInView,rem_nOffsetInPage,bIsAuthenticated,nMarkerPageNum,nMarkerID){
if(BV_sSearchText!=""){
if(BV_nGotoPageNum>0){
SearchInBook(BV_sSearchText,true);
BV_nTopPageInView=BV_nGotoPageNum;
BV_GotoPage(BV_nTopPageInView,0);
}else
SearchInBook(BV_sSearchText,false);
}
else if(rem_nTopPageInView>0){
TOC_bCancelTocEntryAutoClickOnLoad=true;
BV_InsistOnGotoPage(rem_nTopPageInView+1,rem_nOffsetInPage,10);
}else if(nMarkerID>0){
TOC_bCancelTocEntryAutoClickOnLoad=true;
BV_InsistOnGotoPage(nMarkerPageNum,0,10);
HideAjaxMessageBox();
ShowAjaxImportantMessageBox(TXT_PleaseWaitMarkerIsLoading,2500);
MarkersMgr_LoadMarkerASAP(nMarkerPageNum,nMarkerID);
}
BV_ComputePagesInView(true);
PageContent_Load(BV_nTopPageInView,1);
ToolBar_SetAutoFitMode();
if(BV_bAdminUser){
AdTools_CountPagesWithPics();
AdTools_CountLockedPages();
}
PageContent_LoadHighQualityPagesInView();
LoadPendingScripts();
bookinit_DetectScrollbarSide();
}
function bookinit_DetectScrollbarSide(){
var oSBDetect=UTILS_CreateElement("DIV");
oSBDetect.style.width=(BV_oBook.offsetWidth-18)+"px";
oSBDetect.style.height="1px";
BV_oBook.appendChild(oSBDetect);
var nLeft=0;
if(document.getBoxObjectFor){
var bo=document.getBoxObjectFor(oSBDetect);
nLeft=bo.x;
}
else{
var rect=oSBDetect.getBoundingClientRect();
nLeft=rect.left;
}
BV_ScrollbarIsOnTheLeftSide=(nLeft>10);
BV_oBook.removeChild(oSBDetect);
}
function bookinit_InitTools(bIsAuthenticated){
BV_PrepareWindows();
BV_PrepareMarkers();
BV_LoadPushpinTypes();
BV_LoadUserFolders();
if(bIsAuthenticated)
BV_LoadUserFolders();
else
BV_bFoldersLoaded=true;
}
function BV_InitElementRefs(){
BV_oBook=$("BV_oBook");
oStage=$("oStage");
oTabs=$("oTabs");
BV_oBubbleContainer=$("BV_oBubbleContainer");
oSplitterContainer=$("oSplitterContainer");
oSplitterLine=$("oSplitterLine");
oClosedSplitterLine=$("oClosedSplitterLine");
}
function BV_UpdateBrowserLocation_OnTimer(){
if(BV_UpdateBrowserLocation_Timer>0)
window.clearTimeout(BV_UpdateBrowserLocation_Timer);
var sState=BV_GetHash();
if(!MasterPage_OnLoadFlagIsSet())
return;
if(isIE){
location.hash=sState;
}
else{
var sLocation=window.location+'';
window.location.replace(sLocation.split('#')[0]+'#'+sState);
}
}
function BV_GetHash(){
return(BV_nTopPageInView+1)+"."+BV_nOffsetInPage+"."+BV_nCurrentSizeStep+"."+BV_sAutoFitMode;
}
function BV_SetActiveTool(sTool){
if(sTool!=BV_DRAG)
BV_HideMarkerBubble("BV_SetActiveTool",false);
BV_sActiveTool=sTool
switch(sTool){
case BV_DRAG:BV_oBook.style.cursor="all-scroll";break;
case BV_SELECT:BV_oBook.style.cursor="crosshair";break;
case BV_PUSHPIN:BV_oBook.style.cursor="pointer";break;
case BV_COPY:BV_oBook.style.cursor="crosshair";break;
case BV_ISOLATE:BV_oBook.style.cursor="crosshair";break;
case BV_INDICATOR:BV_oBook.style.cursor="crosshair";break;
case BV_LINK:BV_oBook.style.cursor="crosshair";break;
}
}
var BV_nPagePadding_Left=0;
var BV_nPagePadding_Right=5;
var BV_nPagePadding_Top=10;
var BV_nPagePadding_Bottom=5;
var BV_nScrollbarWidth=16;
var BV_PUSHPIN="pushpin";
var BV_DRAG="drag";
var BV_SELECT="select";
var BV_COPY="copy";
var BV_ISOLATE="isolate";
var BV_INDICATOR="indicator";
var BV_LINK="link";
var BV_ICON_LINK="iconlink";
var BV_nTotalPages;
var BV_bSomePagesAreClosed;
var BV_nPageImageWidth;
var BV_nPageImageHeight;
var BV_nPageDefaultImageWidth;
var BV_nPageDefaultImageHeight;
var BV_sViewerFilesPath;
var BV_nFirstPagePos=0;
var BV_nPagesPosDelta=0;
var BV_nLoadTimeoutID=-1;
var BV_nLoadInHighQualityTimeoutID=-1;
var BV_nUpdateUrlTimeoutID=-1;
var BV_nGotoPageNum=0;
var BV_nTopPageInView=0;
var BV_nLastTopPageInView=-1;
var BV_nBottomPageInView=0;
var BV_sActiveTool=BV_DRAG;
var BV_sBookLayout="continuous";
var BV_sAutoFitMode="none";
var BV_nBookID=0;
var BV_nCurrentSizeStep=0;
var BV_nOffsetInPage;
var BV_sSearchText="";
var BV_bAdminUser=false;
var BV_bPagesInStorage=true;
var BV_bHasTOC=true;
var BV_bTOCLoaded=false;
var BV_TocEntries=[];
var BV_bOnDrag=false;
var BV_nStartDragMouseLeft=-1;
var BV_nStartDragMouseTop=-1;
var BV_nStartDragScrollLeft=-1;
var BV_nStartDragScrollTop=-1;
var BV_SmartLoadInitialDelay=1;
var BV_SmartLoadDelayIncrement=0.3;
var BV_SmartLoadDelayUnit=300;
var BV_LoadHighQualityPagesInViewDelay=1500;
var BV_nCdnServers=0;
var BV_sCdnDomain="";
var BV_UpdateBrowserLocation_Timeout=1000;
var BV_UpdateBrowserLocation_Timer=0;
var BV_bAllPagesAreLoaded=false;
var BV_bStageIsVisible=true;
var BV_sHashOnLoad='';
var BV_oBook=null;
var oStage=null;
var oTabs=null;
var BV_oBubbleContainer=null;
var oSplitterContainer=null;
var oSplitterLine=null;
var oClosedSplitterLine=null;
var aBookPagesInfo=new Array();
var AdTools_bShowWireframe=false;
var AdTools_bShowWordWireframe=false;
var AdTools_bShowLineWireframe=false;
var AdTools_bShowOnlyPagesWithPics=false;
var AdTools_bShowOnlyLockedPages=false;
var AdTools_bBindTocEntry=false;
var AdTools_bModifyTocEntry=false;
var BV_bBookAutoScrolledToAccommodateNoteWindow=false;
var BV_bBookAutoScrolled=0;
var BV_TEMPORARY_MARKER_ID="temporary";
var BV_bApplyNewStyleRulesForTheFirstTime=true;
var BV_bPostLoadScriptsAvailable=false;
var BV_bMarkerScriptsLoaded=false;
var BV_bSupportsLayersInViewer=false;
var BV_bCanPublishHighlights=false;
var BV_bCanPublishPushpins=false;
var BV_bCanViewPublishedHighlights=false;
var BV_bCanViewPublishedPushpins=false;
var LAYERS_MY_HIGHLIGHTS=0;
var LAYERS_MY_PUSHPINS=1;
var LAYERS_MY_PUBLISHED_ITEMS=2;
var LAYERS_PUBLISHED_ITEMS=3;
var LAYERS_ADMIN_ITEMS=4;
var MarkersList_bFullyRendered=false;
var BV_ScrollbarIsOnTheLeftSide=true;
var BV_aMarkerHandles=new Array(
{sKey:"top-left",sCursor:"NW-resize",sLeft:"L",sTop:"T"},
{sKey:"top",sCursor:"N-resize",sLeft:"M",sTop:"T"},
{sKey:"top-right",sCursor:"NE-resize",sLeft:"R",sTop:"T"},
{sKey:"right",sCursor:"E-resize",sLeft:"R",sTop:"M"},
{sKey:"bottom-right",sCursor:"SE-resize",sLeft:"R",sTop:"B"},
{sKey:"bottom",sCursor:"S-resize",sLeft:"M",sTop:"B"},
{sKey:"bottom-left",sCursor:"SW-resize",sLeft:"L",sTop:"B"},
{sKey:"left",sCursor:"W-resize",sLeft:"L",sTop:"M"}
);
var Notes_sContainerID="BV_oBook";
var NotesPreview_BubbledMarkerID=0;
var NotesEditor_sControlID="BV_oNotesEditor";
var NotesEditor_nRichTextWidth=360;
var NotesEditor_nWidth=400;
var NotesEditor_nBasicHeight=300;
var NotesEditor_nFullHeight=450;
var NotesEditor_nCurrentWindowHeight=0;
var NotesEditor_IFrame=null;
var NotesEditor_LoadIFrameContentTimeout=500;
var NotesEditor_LoadIFrameContentTimeoutID=0;
var NotesEditor_bMiniMode=false;
var NotesViewer_sControlID="BV_oNotesViewer";
var NotesViewer_nWidth=400;
var NotesViewer_nBasicHeight=250;
var NotesViewer_nFullHeight=450;
var NotesViewer_IFrame=null;
var NotesViewer_LoadIFrameContentTimeout=500;
var NotesViewer_LoadIFrameContentTimeoutID=0;
var Notes_oDraggedWindow=null;
var Notes_oDraggedWindowGrip=null;
var Notes_oDraggedWindowParams=null;
var NotesWindowWasDragged=false;
var Notes_nDraggedMarkerWindowID=0;
var Notes_LastDraggedPosition=null;
var BV_oDraggedMarker=null;
var BV_oResizedMarker=null;
var BV_sResizedMarkerHandle=null;
var BV_oBubbledMarker=null;
var BV_bInBubbleEditMode=false;
var MarkersMgr_bInitilized=false;
var MarkersMgr_bLoaded=false;
var MarkersMgr_PagesLoaded=null;
var MarkersMgr_PageMarkers=null;
var MarkersMgr_RenderedMarkers=new Array();
var MarkersMgr_MarkerStatistics=new Array();function Highlights_ClearAll(bRemoveHighlightFlag){
var nPages=BV_nTotalPages;
for(n=0;n<nPages;n++){
if(bRemoveHighlightFlag)
BookPageState_SetHasHighlights(n,false);
UTILS_RemoveDomElement(document.getElementById("BV_oHighlight"+n));
}
}
function Highlights_LoadPageHighlights(nPageIndex){
if(nPageIndex<0||nPageIndex+1>=BV_nTotalPages)
return;
if(!BookPageState_GetHasHighlights(nPageIndex)||!BookPageState_GetIsOpen(nPageIndex))
return;
var oHighlights=document.getElementById("BV_oHighlight"+nPageIndex);
if(oHighlights==null){
var oHighlights=UTILS_CreateElement("DIV");
oHighlights.className="BV_oHighlights";
oHighlights.id="BV_oHighlight"+nPageIndex
BV_GetPageImageElement(nPageIndex).appendChild(oHighlights);
var params=new Array(
{name:"nPageID",value:BookPageState_GetPageID(nPageIndex)},
{name:"sSearchText",value:encodeKotar(BV_sSearchText)},
{name:"nImageWidth",value:BV_nPageImageWidth},
{name:"nImageHeight",value:BV_nPageImageHeight});
executeWebRequest("Pages.GetHighlightedImageMap",params,
{onSuccessFunction:loadPageHighlights_OnSuccess,
onFailureFunction:loadPageHighlights_OnFailure,
sTargetContainerID:oHighlights.id
});
}
}
function loadPageHighlights_OnSuccess(aHighlights,oInfo){
var oContainer=document.getElementById(oInfo.sTargetContainerID);
if(oContainer==null)
return;
oContainer.innerHTML='';
for(var i=0;i<aHighlights.length;i++){
if(RectangleIsInRange(aHighlights[i],BV_nPageImageWidth,BV_nPageImageHeight)){
var oHighlight=UTILS_CreateElement("DIV");
oHighlight.style.top=aHighlights[i].y*1+"px";
oHighlight.style.left=aHighlights[i].x*1+"px";
oHighlight.style.width=aHighlights[i].width*1+"px";
oHighlight.style.height=aHighlights[i].height*1+"px";
oHighlight.className="pageHighlight"+(isIE?"IE":"");
oContainer.appendChild(oHighlight);
}
}
}
function loadPageHighlights_OnFailure(){
}
var BV_bHightlightNextAvailablePage=false;
var BV_ListOfHighlightedPages=null;
var BV_ListOfHighlightedPageLocations=null;
function Hightlights_MarkPagesWithHighlights(sText,aResults){
BV_HideMarkerBubble("Hightlights_MarkPagesWithHighlights",false);
Highlights_ClearAll(true);
BV_sSearchText=sText;
var sLastPageNum='';
var aPages=new Array();
BV_ListOfHighlightedPageLocations=new Array();
for(var r=0;r<aResults.length;r++){
var oResult=aResults[r];
var nPageNum=oResult.pg;
var nPrimitiveOffset=oResult.os;
if(nPageNum!=sLastPageNum){
aPages[aPages.length]=nPageNum;
BV_ListOfHighlightedPageLocations[BV_ListOfHighlightedPageLocations.length]=nPrimitiveOffset;
sLastPageNum=nPageNum;
}
}
$("prev").style.display="";
$("next").style.display="";
BV_ListOfHighlightedPages=aPages;
for(var i=0;i<aPages.length;i++){
BookPageState_SetHasHighlights((aPages[i]-1),true);
}
PageContent_LoadPagesInView(false);
if(BV_bHightlightNextAvailablePage==true){
if(!Highlights_FindNextPage(BV_nTopPageInView,true)){
Highlights_FindNextPage(0,true);
}
}
else{
BV_bHightlightNextAvailablePage=true;
}
}
function Highlights_FindNextPage(nStartingPage,bSuppressLastResMsg){
if(BV_ListOfHighlightedPages==null)
return false;
for(var i=0;i<BV_ListOfHighlightedPages.length;i++){
if((BV_ListOfHighlightedPages[i]-1)>nStartingPage){
BV_GotoPage(BV_ListOfHighlightedPages[i],BV_ListOfHighlightedPageLocations[i]);
return true;
}
}
if(!bSuppressLastResMsg)
ShowAjaxNotification(TXT_LastHighlightedPage);
return false;
}
function Highlights_FindPreviousPage(nStartingPage){
if(BV_ListOfHighlightedPages==null)
return;
for(var i=BV_ListOfHighlightedPages.length-1;i>=0;i--){
if((BV_ListOfHighlightedPages[i]-1)<nStartingPage){
BV_GotoPage(BV_ListOfHighlightedPages[i],BV_ListOfHighlightedPageLocations[i]);
return;
}
}
ShowAjaxNotification(TXT_FirstHighlightedPage);
}var MarkersMgr_sShowPageMarkersQueue=".";
function MarkersMgr_ShowPageMarkers(nPageNum){
if(!BV_bMarkerScriptsLoaded){
MarkersMgr_PushShowPageMarkers(nPageNum);
return;
}
MarkersMgr_RenderPageMarkers(nPageNum);
}
function MarkersMgr_PushShowPageMarkers(nPageNum){
if(MarkersMgr_sShowPageMarkersQueue.indexOf("."+nPageNum+".")>(-1))
return;
MarkersMgr_sShowPageMarkersQueue=MarkersMgr_sShowPageMarkersQueue+nPageNum+".";
}
var MarkersMgr_LoadMarkerASAPAttempts=0,MarkersMgr_LoadMarkerASAPTimerID=0;
function MarkersMgr_LoadMarkerASAP(nMarkerPageNum,nMarkerID){
if(MarkersMgr_LoadMarkerASAPTimerID>0)
window.clearTimeout(MarkersMgr_LoadMarkerASAPTimerID);
var bRetry=false;
if(!BV_bPostLoadScriptsAvailable)
bRetry=true;
else if(BV_bSupportsLayersInViewer)
bRetry=!MarkersList_bFullyRendered;
else
bRetry=!MarkersMgr_PageMarkersWereRendered(nMarkerPageNum);
if(bRetry&&MarkersMgr_LoadMarkerASAPAttempts<60){
MarkersMgr_LoadMarkerASAPAttempts++;
MarkersMgr_LoadMarkerASAPTimerID=window.setTimeout("MarkersMgr_LoadMarkerASAP("+nMarkerPageNum+","+nMarkerID+")",250);
}
else{
nMarkerPageNum=(nMarkerPageNum*1)-1;
nMarkerID=nMarkerID*1;
MarkersMgr_OnClick(nMarkerPageNum,nMarkerID);
}
}function submitSearchInBook(e,sSearchText){
if(e.keyCode==13){
SearchInBook(sSearchText,false);
return false;
}
}
var BV_SearchInBook_TimeoutID=0;
var BV_LastSearchString="";
function Toolbar_SearchInBook(){
if($('oToolbarSearchBox')!=null){
var sSearchText=$('oToolbarSearchBox').value;
SearchInBook(sSearchText,false);
}
}
function SearchInBook(sSearchText,bStayOnThisPage){
if(BV_nBookID==0){
BV_SearchInBook_TimeoutID=window.setTimeout("SearchInBook('"+sSearchText+"', "+bStayOnThisPage+")",200);
return;
}
if(BV_SearchInBook_TimeoutID>0)
window.clearTimeout(BV_SearchInBook_TimeoutID);
try{
sSearchText=decodeKotar(sSearchText);
}
catch(ex){}
sSearchText=sSearchText.trim();
if(ReplaceAll(sSearchText,"-","")=="")
sSearchText="";
if($("oToolbarSearchBox")!=null)
$('oToolbarSearchBox').value=sSearchText;
$("txtSearchInBook").value=sSearchText;
if(sSearchText=="")return;
if(sSearchText==BV_LastSearchString)return;
$("divSearchInBookResult").innerHTML="";
BV_LastSearchString=sSearchText;
$("imgLoading").style.display="block";
var params=new Array(
{name:"nBookID",value:BV_nBookID},
{name:"sSearchText",value:encodeKotar(sSearchText)},
{name:"nImageWidth",value:BV_nPageImageWidth},
{name:"nImageHeight",value:BV_nPageImageHeight},
{name:"tmp",value:"tmp"});
executeWebRequest("Search.SearchInBook",params,{onSuccessFunction:SearchInBook_OnComplete,onFailureFunction:SearchInBook_OnError});
BV_bHightlightNextAvailablePage=(bStayOnThisPage==false);
clientActiveTabChanged("tdSearchInBook");
}
function SearchInBook_OnError(){
$("divSearchInBookResult").innerHTML=TXT_SearchIsInvalid;
$("imgLoading").style.display="none";
}
function SearchInBook_OnComplete(aResults){
if(aResults.length==0){
$("divSearchInBookResult").innerHTML=TXT_SearchHadZeroResults;
}
else{
Hightlights_MarkPagesWithHighlights(BV_LastSearchString,aResults);
var sLookAndFeel='<li><div'+
' onmouseover="this.style.color=\'Blue\'; this.style.textDecoration=\'underline\'; " '+
' onmouseout="this.style.color=\'Black\'; this.style.textDecoration=\'none\'; "'+
' style=\'cursor: pointer; font-weight: normal; color: Black;\'';
var aTexts=new Array();
for(var r=0;r<aResults.length;r++){
var oResult=aResults[r];
var nPageNum=oResult.pg;
var nPrimitiveOffset=oResult.os;
var sText=oResult.tx;
var sHTML=sLookAndFeel+
' onclick=\'Search_ResultOnClick('+nPageNum+', '+nPrimitiveOffset+')\'>'
+sText+'</div></li>';
aTexts[aTexts.length]=sHTML;
}
var sFullHTML=
'<BR/>'+
'<b>'+ReplaceAll(TXT_SearchReturnedXResults,'{0}',aResults.length)+'</b>'+
'<UL>'+aTexts.join("")+'</UL>';
$("divSearchInBookResult").innerHTML=sFullHTML;
}
$("imgLoading").style.display="none";
TreeView_OnClick();
}
function Search_ResultOnClick(nPageNum,nInPageOffset){
BV_GotoPage(nPageNum,nInPageOffset);
BV_oBook.focus();
}
function UTILS_UpdateStyleRule(sSelector,sNewStyle){
if(isIE)
UTILS_UpdateStyleRule_IE(sSelector,sNewStyle);
else
UTILS_UpdateStyleRule_FF(sSelector,sNewStyle);
}
function UTILS_UpdateStyleRule_IE(sSelector,sNewStyle){
var nStyleSheet;
var nRule;
var iNumStyleSheets=document.styleSheets.length;
for(nStyleSheet=0;nStyleSheet<iNumStyleSheets;nStyleSheet++){
var oStyleSheet=document.styleSheets[nStyleSheet];
var iStylesheetRules=oStyleSheet.rules.length;
for(nRule=0;nRule<iStylesheetRules;nRule++){
if(oStyleSheet.rules[nRule].selectorText==sSelector){
oStyleSheet.removeRule(nRule);
oStyleSheet.addRule(sSelector,sNewStyle)
return;
}
}
}
}
function UTILS_UpdateStyleRule_FF(sSelector,sNewStyle){
var nStyleSheet;
var nRule;
var bSuccess=false;
var sOriginalSelector=sSelector;
sSelector=(sSelector+'').toLowerCase();
try{
var iNumStyleSheets=document.styleSheets.length;
for(nStyleSheet=0;nStyleSheet<iNumStyleSheets&&!bSuccess;nStyleSheet++){
var oStyleSheet=document.styleSheets[nStyleSheet];
var iStylesheetRules=oStyleSheet.cssRules.length;
for(nRule=0;nRule<iStylesheetRules&&!bSuccess;nRule++){
var sSelectorText=(oStyleSheet.cssRules[nRule].selectorText+'').toLowerCase();
if(sSelectorText==sSelector){
oStyleSheet.deleteRule(nRule);
oStyleSheet.insertRule(sOriginalSelector+"{"+sNewStyle+"}",oStyleSheet.cssRules.length)
bSuccess=true;
}
}
}
}catch(ex){
}
}
var TOC_nCurrentTocEntryID=0;
var BV_nLastClickedTOCEntryID=0;
var BV_nLastClickedTOCEntryPrimitiveID=0;
var TOC_bCancelTocEntryAutoClickOnLoad=false;
function TocEntry_AutoClickOnLoad(nPageNum,nPrimitiveLogicalY,nTocEntryID,nFirstPrimitiveID){
if(!TOC_bCancelTocEntryAutoClickOnLoad)
TocEntry_OnClick(nPageNum,nPrimitiveLogicalY,nTocEntryID,nFirstPrimitiveID);
}
function TocEntry_OnClick(nPageNum,nPrimitiveLogicalY,nTocEntryID,nPrimitiveID){
BV_nLastClickedTOCEntryID=nTocEntryID;
BV_nLastClickedTOCEntryPrimitiveID=nPrimitiveID;
BV_GotoPage(nPageNum,nPrimitiveLogicalY);
if(AdTools_bBindTocEntry){
ShowAjaxNotification("בחר/י פריטיב מהדף אותו ברצונך לקשר לרשומה זו",1000)
}
else if(AdTools_bModifyTocEntry)
TocEdit_ModifyEntry(nTocEntryID);
else
TOC_ShowTocEntryTitle(nTocEntryID);
}
function TOC_ComputeCurrentLocation(){
if(TOC_IsEmpty())
return;
var nLen=BV_TocEntries.length;
var oEntry=null;
var nPage=(BV_nTopPageInView+1)*1;
var nOffset=BV_nOffsetInPage*1;
var nTotalOffset=(nPage*UTILS_nLogicalUnits)+nOffset+50;
var oEntryA=BV_TocEntries[0];
if(!(nTotalOffset<oEntryA.nPage*UTILS_nLogicalUnits+oEntryA.nOffset)){
for(var n=0;n<nLen;n++){
oEntryA=BV_TocEntries[n];
if(n<(nLen-1)){
var oEntryB=BV_TocEntries[(n+1)];
var nOffsetA=(oEntryA.nPage*UTILS_nLogicalUnits+oEntryA.nOffset);
var nOffsetB=(oEntryB.nPage*UTILS_nLogicalUnits+oEntryB.nOffset);
if(nOffsetA<=nTotalOffset&&nOffsetB>nTotalOffset){
oEntry=oEntryA;
break;
}
}
}
}
if(oEntry==null)
oEntry=oEntryA;
TOC_nCurrentTocEntryID=oEntry.nID;
}
function TOC_ShowTocEntryTitle(nTocEntryID){
if(TOC_IsEmpty())
return;
var nLen=BV_TocEntries.length;
for(var n=0;n<nLen;n++){
if(BV_TocEntries[n].nID==nTocEntryID){
ShowAjaxNotification(BV_TocEntries[n].sTitle);
return;
}
}
}
function TOC_GotoNextTocEntry(){
if(TOC_IsEmpty())
return;
var nLen=BV_TocEntries.length;
for(var n=0;n<nLen-1;n++){
if(BV_TocEntries[n].nID==TOC_nCurrentTocEntryID&&n<(nLen+1)){
TOC_GotoTocEntry(BV_TocEntries[(n+1)]);
return;
}
}
ShowAjaxNotification(TXT_LastTocEntry);
}
function TOC_GotoPreviousTocEntry(){
if(TOC_IsEmpty())
return;
var nLen=BV_TocEntries.length;
for(var n=0;n<nLen;n++){
if(BV_TocEntries[n].nID==TOC_nCurrentTocEntryID&&n>0){
if(!TOC_IsSameAsCurrentLocation(BV_TocEntries[(n-1)]))
TOC_GotoTocEntry(BV_TocEntries[(n-1)]);
else if(n>2)
TOC_GotoTocEntry(BV_TocEntries[(n-2)]);
return;
}
}
ShowAjaxNotification(TXT_FirstTocEntry);
}
function TOC_IsSameAsCurrentLocation(oEntry){
if(oEntry.nPage==(BV_nTopPageInView+1))
return(Math.abs(oEntry.nOffset-BV_nOffsetInPage)<30);
return false;
}
function TOC_GotoTocEntry(oEntry){
ShowAjaxNotification(oEntry.sTitle);
BV_GotoPage(oEntry.nPage,oEntry.nOffset);
}
function TOC_IsEmpty(){
if(!BV_bTOCLoaded){
BV_bTOCLoaded=true;
window.setTimeout("TOC_LoadTocJS()",100);
}
return(!BV_bHasTOC||BV_TocEntries.length==0);
}
function TOC_LoadTocJS(){
executeWebRequest("TOC.GetToc",[{name:"nBookID",value:BV_nBookID}],
{onSuccessFunction:TOC_LoadTocJS_OnComplete,onFailureFunction:TOC_LoadTocJS_OnError});
}
function TOC_LoadTocJS_OnError(){
}
function TOC_LoadTocJS_OnComplete(aEntries){
BV_TocEntries=aEntries;
}
var BV_bTocLoaded=false;
function LoadTocIfNotAlreadyLoaded(){
if(BV_bTocLoaded==true)
return;
BV_bTocLoaded=true;
window.setTimeout("LoadToc_OnTimeout()",1000);
}
function Refresh_TOC(){
if(AdTools_bShowEditableTOC)
$(btnLoadQATocClientID).click();
else
$(btnLoadTocClientID).click();
TOC_AlignToSide();
}
function TOC_AlignToSide(){
window.setTimeout("Tabs_AutoScrollLeft()",200);
}
function LoadToc_OnTimeout(){
try{
$(btnLoadTocClientID).click();
}catch(e){}
}
function TreeView_OnClick(){
window.setTimeout("TreeView_OnTimeout();",100);
}
var nLastScrollWidth=0;
function TreeView_OnTimeout(){
try{
if(typeof(oTabs)!="undefined"){
if(oTabs.scrollWidth!=nLastScrollWidth||!isRTL()){
nLastScrollWidth=oTabs.scrollWidth;
oTabs.scrollLeft=(isRTL()?oTabs.scrollWidth:-1000);
}
}
}
catch(e){}
}function Toolbar_ToggleVisibility(){
var oToolbar=$("dvToolbar");
if(oToolbar.style.display=="block")
oToolbar.style.display="none";
else
oToolbar.style.display="block";
Viewer_SetControlSizes(false);
}
function Toolbar_GetHeight(){
return($("dvToolbar")!=null&&$("dvToolbar").style.display=="block"?35:5);
}
function Toolbar_GetBaseClassName(className){
if(className.split(' ').length==2)
return' '+className.split(' ')[1].replace('_over','');
return'';
}
function ToolBar_OnMouseOver(oElement){
if(!Viewer_bLoadCompleted)return;
if(oElement.className.indexOf("Button")!=0)
return;
if(oElement.className.indexOf("ButtonSelected")!=0)
oElement.className="Button"+Toolbar_GetBaseClassName(oElement.className)+"_over";
if(Toolbar_GetBaseClassName(oElement.className)=='')
oElement.src="/KotarApp/Viewer/Images/Toolbar/"+oElement.id+"_over.gif"
}
function ToolBar_OnMouseOut(oElement){
if(!Viewer_bLoadCompleted)return;
if(oElement.className.indexOf("Button")!=0)
return;
if(oElement.className.indexOf("ButtonSelected")!=0)
oElement.className="Button"+Toolbar_GetBaseClassName(oElement.className);
if(Toolbar_GetBaseClassName(oElement.className)=='')
oElement.src="/KotarApp/Viewer/Images/Toolbar/"+oElement.id+".gif";
}
function ToolBar_OnMouseDown(oElement){
if(!Viewer_bLoadCompleted)return;
if(oElement.className.indexOf("Button")!=0)
return;
if(oElement.className.indexOf("ButtonHover")==0)
oElement.className="ButtonDown"+Toolbar_GetBaseClassName(oElement.className);
}
function ToolBar_OnMouseUp(oElement){
if(!Viewer_bLoadCompleted)return;
if(oElement.className.indexOf("Button")!=0)
return;
if(oElement.className.indexOf("ButtonDown")==0)
oElement.className="ButtonHover"+Toolbar_GetBaseClassName(oElement.className);
}
function ToolBar_SetDefaultTool(){
ToolBar_OnClickDragMode();
}
function ToolBar_OnClickDragMode(){
if(!Viewer_bLoadCompleted)return;
BV_SetActiveTool(BV_DRAG);
ToolBar_SetSelectedButton("hand");
}
function ToolBar_OnClickSelectMode(){
if(!Viewer_bLoadCompleted)return;
Layers_EnsureLayerVisibility(LAYERS_MY_HIGHLIGHTS);
ShowAjaxNotification(TXT_HighlightIsActive);
BV_SetActiveTool(BV_SELECT);
ToolBar_SetSelectedButton("marker");
}
function ToolBar_OnClickSelectWordsMode(bWords){
if(!Viewer_bLoadCompleted)return;
WordsFrame_LoadPageWireframe(BV_nTopPageInView,bWords);
ShowAjaxNotification(TXT_HighlightIsActive);
BV_SetActiveTool(BV_SELECT);
ToolBar_SetSelectedButton("marker");
}
function ToolBar_OnClickIsolate(){
if(!Viewer_bLoadCompleted)return;
BV_SetActiveTool(BV_ISOLATE);
ToolBar_SetSelectedButton(BV_ISOLATE);
ShowAjaxNotification(TXT_Isolate);
}
function ToolBar_OnClickPushpinMode(){
if(!Viewer_bLoadCompleted)return;
Layers_EnsureLayerVisibility(LAYERS_MY_PUSHPINS);
ShowAjaxNotification(TXT_PushpinIsAction);
BV_bUserCanSelectPushpinType=BV_bAdminUser;
BV_SetActiveTool(BV_PUSHPIN);
ToolBar_SetSelectedButton("bookmark");
}
function ToolBar_OnClickCopyMode(){
if(!Viewer_bLoadCompleted)return;
ShowAjaxNotification(TXT_CopyRegionIsActive);
BV_SetActiveTool(BV_COPY);
ToolBar_SetSelectedButton(BV_COPY);
}
var _ToolBar_sSelectedButtonID="hand";
function ToolBar_SetSelectedButton(sButtonID){
ToolBar_ResetButtonClass("hand");
ToolBar_ResetButtonClass("marker");
ToolBar_ResetButtonClass("bookmark");
ToolBar_ResetButtonClass("copy");
ToolBar_ResetButtonClass("indicator");
ToolBar_ResetButtonClass("isolate");
if(BV_bAdminUser){
ToolBar_ResetButtonClass("link");
}
if($(sButtonID)!=null){
_ToolBar_sSelectedButtonID=sButtonID;
$(sButtonID).className="ButtonSelected Toolbar_"+sButtonID+"_s";
}
}
function Toolbar_IsEditToolActive(){
return(_ToolBar_sSelectedButtonID!="hand");
}
function ToolBar_ResetButtonClass(sButtonID){
var btn=$(sButtonID);
if(btn!=null)
btn.className="Button Toolbar_"+sButtonID;
}
var BV_bIsInFullScreenMode=false;
function ToolBar_OnClickFull(){
if(!Viewer_bLoadCompleted)return;
BV_bIsInFullScreenMode=!BV_bIsInFullScreenMode;
var nNavLineHeight=(typeof(nNavigationLineHeight)=='undefined'?0:nNavigationLineHeight);
var nHeaderHeight=nWebsiteHeaderHeight-nNavLineHeight;
var tblContentContainer=$("tblContentContainer");
var divCurrentBook=$("ctl00_Header_divCurrentBook");
if(divCurrentBook!=null)
nHeaderHeight+=divCurrentBook.offsetHeight;
tblContentContainer.style.position="relative";
tblContentContainer.style.top=(BV_bIsInFullScreenMode?nHeaderHeight*(-1):0)+"px";
ExecWindowOnResizeEventHandlers();
}
function ToolBar_SetCtrlDisplay(oCtrl,bDisplay){
if(oCtrl==null)return;
oCtrl.style.display=(bDisplay?'block':'none');
}
function Toolbar_GotoPageByLabel(sLabel){
if(!Viewer_bLoadCompleted)return;
var oPageNum=$("oPageNum");
if(!BV_GotoPageByLabel(oPageNum.value)){
ShowAjaxImportantMessageBox(TXT_NoPageWithSuchLabel+" ("+oPageNum.value+")");
oPageNum.value="";
oPageNum.focus();
}
else
window.focus();
}
var AUTO_HIDE_UGCL_TIMEOUT_MS=1000;
var nAutoHideUGCLTimerID=0;
function UGCLayerSelector_OnMouseOut(){
if(Layers_bVisible){
UGCLayerSelector_ClearTimer();
nAutoHideUGCLTimerID=setTimeout("UGCLayerSelector_OnTimer()",AUTO_HIDE_UGCL_TIMEOUT_MS);
}
}
function UGCLayerSelector_OnMouseMove(){
UGCLayerSelector_ClearTimer();
}
function UGCLayerSelector_ClearTimer(){
if(nAutoHideUGCLTimerID!=0)
clearTimeout(nAutoHideUGCLTimerID);
}
function UGCLayerSelector_OnTimer(){
Layers_ToggleSelector();
}
var BV_aFolders=new Array();
var BV_bFoldersLoaded=false;
function BV_ReloadUserFolders(){
BV_bFoldersLoaded=false;
BV_LoadUserFolders();
}
function BV_LoadUserFolders(){
if(BV_bFoldersLoaded==true)
return;
if(BV_aInitialFolders==null){
var params=new Array({name:"SerType",value:2},{name:"tmp",value:"tmp"});
executeWebRequest("Projects.GetAll",params,{onSuccessFunction:BV_OnGetUserFoldersComplete,onFailureFunction:BV_OnGetUserFoldersError});
}
else{
BV_OnGetUserFoldersComplete(BV_aInitialFolders);
BV_aInitialFolders=null;
}
}
function BV_OnGetUserFoldersError(){
AddDebugMessage("BV_OnGetUserFoldersError");
}
function BV_OnGetUserFoldersComplete(oFolders){
BV_aFolders=oFolders;
BV_bFoldersLoaded=true;
}
function BV_GetMarkerFolderName(nFolderID){
for(var i=0;i<BV_aFolders.length;i++){
if(BV_aFolders[i].nProjectID==nFolderID){
return BV_aFolders[i].sName;
}
}
return""
}var UTILS_nLogicalUnits=10000;
function UTILS_PreventBrowserDefaultAction(event){
if(event.preventDefault){event.preventDefault();}
}
function $(sID){
return document.getElementById(sID);
}
function UTILS_GetScrollbarWidth(){
var oOuterDiv=null;
var oInnerDiv=null;
var nScrollWidth=0;
oOuterDiv=UTILS_CreateElement('div');
oOuterDiv.style.position='absolute';
oOuterDiv.style.top='-1000px';
oOuterDiv.style.left='-1000px';
oOuterDiv.style.width='100px';
oOuterDiv.style.height='100px';
oOuterDiv.style.overflow='scroll';
oInnerDiv=UTILS_CreateElement('div');
oInnerDiv.style.width='100%';
oInnerDiv.style.height='100%';
oOuterDiv.appendChild(oInnerDiv);
document.body.appendChild(oOuterDiv);
nScrollWidth=oOuterDiv.offsetWidth-oInnerDiv.offsetWidth;
document.body.removeChild(document.body.lastChild);
return nScrollWidth;
}
function UTILS_GetElementPos(oElement){
var oRect=oElement.getBoundingClientRect();
return{nLeft:((oRect.left+'').split('.')[0])-18,nTop:((oRect.top+'').split('.')[0])-2};
}
function UTILS_GetMarkerLogicalPos(oMarkerElement){
var nLeft=UTILS_PixelToLogicalX(oMarkerElement.offsetLeft,BV_nPageImageWidth);
var nTop=UTILS_PixelToLogicalY(oMarkerElement.offsetTop,BV_nPageImageHeight);
var nWidth=UTILS_PixelToLogicalX(oMarkerElement.offsetWidth,BV_nPageImageWidth);
var nHeight=UTILS_PixelToLogicalY(oMarkerElement.offsetHeight,BV_nPageImageHeight);
if(oMarkerElement.sType==BV_PUSHPIN){
nLeft=UTILS_PixelToLogicalX(oMarkerElement.offsetLeft+BV_nPushpinHotX,BV_nPageImageWidth);
nTop=UTILS_PixelToLogicalY(oMarkerElement.offsetTop+BV_nPushpinHotY,BV_nPageImageHeight);
}
return{nLeft:nLeft,nTop:nTop,nWidth:nWidth,nHeight:nHeight};
}
function UTILS_PixelToLogicalX(nPixels,nPageImagePixelWidth){
return Math.round(nPixels*UTILS_nLogicalUnits/BV_nPageImageWidth);
}
function UTILS_PixelToLogicalY(nPixels,nPageImagePixelHeight){
return Math.round(nPixels*UTILS_nLogicalUnits/BV_nPageImageHeight);
}
function UTILS_LogicalToPixelX(nLogical,nPageImagePixelWidth){
return Math.round(nLogical*nPageImagePixelWidth/UTILS_nLogicalUnits);
}
function UTILS_LogicalToPixelY(nLogical,nPageImagePixelHeight){
return Math.round(nLogical*nPageImagePixelHeight/UTILS_nLogicalUnits);
}
function UTILS_CreateElement(sType){
return document.createElement(sType);
}
function UTILS_AddHandler(target,eventName,handlerName){
if(typeof(target)=="undefined")
return;
if(eventName.indexOf("on")==0)
eventName=eventName.substring(2);
if(typeof(target.addEventListener)!="undefined")
target.addEventListener(eventName,handlerName,false);
else if(target.attachEvent)
target.attachEvent("on"+eventName,handlerName);
else
target["on"+eventName]=handlerName;
}
function UTILS_RemoveDomElement(oElement){
if(oElement==null)
return;
if(isIE)
oElement.removeNode(true);
else
oElement.parentNode.removeChild(oElement);
}
var Viewer_bVisibleForTheFirstTime=true;
var Viewer_bFirstDisplaySize=true;
var Viewer_bLoadCompleted=false;
function Viewer_OnLoad(nPage,nOffsetInPage,bIsAuthenticated,nMarkerPageNum,nMarkerID){
Viewer_AddPrintEventHandlers();
document.body.className="viewer";
window.focus();
UTILS_AddHandler(document,"onclick",function(e){return Viewer_OnClick(e);});
Splitter_SetDefaultRatio();
Splitter_DisableToggleBtn();
ShowAjaxNotification(TXT_PleaseWaitBookIsLoading);
Bookinit_ClearBookContents();
BookPages_ApplyPageSize();
Viewer_SetControlSizes(true);
window.setTimeout("Viewer_CompleteLoad("+nPage+", "+nOffsetInPage+", "+bIsAuthenticated+", "+nMarkerPageNum+", "+nMarkerID+")",250);
}
function Viewer_CompleteLoad(nPage,nOffsetInPage,bIsAuthenticated,nMarkerPageNum,nMarkerID){
Bookinit_InitBookPages(nPage,nOffsetInPage,bIsAuthenticated,nMarkerPageNum,nMarkerID);
window.setTimeout("Viewer_AddOnResizeHandlers()",3000);
Tabs_AutoScrollLeft();
}
function Viewer_AddOnResizeHandlers(){
Viewer_bLoadCompleted=true;
AddWindowResizeListner("Viewer_OnWindowResize()");
AddSplitterResizeListner("Viewer_SplitterOnResize()");
Splitter_EnableToggleBtn();
Splitter_EnableDragging();
BookEvents_Wire();
}
function Viewer_OnClick(e){
if(window.event)e=window.event;
var srcEl=e.srcElement?e.srcElement:e.target;
if(srcEl.id.toLowerCase().indexOf('search')>0
||srcEl.id.toLowerCase().indexOf('bv_linkfields')>(-1)
||srcEl.id.toLowerCase().indexOf('opagenum')>(-1)
)
return;
Viewer_GetFocus();
}
function Viewer_GetFocus(e){
TryToBlur("oToolbarSearchBox");
TryToBlur("txtHeaderSearchText");
TryToBlur("oPageNum");
TryToBlur("txtSearchInBook");
}
function TryToBlur(sID){
if(typeof(sID)=='undefined'||sID=='')
return;
try{
document.getElementById(sID).blur();
}catch(e){}
}
function Viewer_OnWindowResize(){
window.setTimeout("Viewer_SetControlSizes(false);",100);
}
function Viewer_SplitterOnResize(){
Viewer_SetControlSizes(true);
}
function Viewer_GetTabsWidth(){
var nWidth=Splitter_nWidth;
if(oTabs.style.display=='')
nWidth+=oTabs.style.width.replace('px','')*1+15;
return nWidth;
}
function Viewer_SetControlSizes(bIncSplitter){
CalcClientSize();
var nStageWidth=clientDimensions.width-15;
if(typeof(nSideMarginsWidth)!="undefined")
nStageWidth-=nSideMarginsWidth;
var bFullScreen=(typeof(BV_bIsInFullScreenMode)!='undefined'?BV_bIsInFullScreenMode:false);
var nStageHeight=clientHeight()-
(bFullScreen?Toolbar_GetHeight():nWebsiteHeaderHeight+footerHeight()+Toolbar_GetHeight())+
(isIE?0:7);
SetAjaxAjaxMessageCustomContainerTop((Toolbar_GetHeight()+(bFullScreen?0:nWebsiteHeaderHeight)+10));
if(!bFullScreen){
if(isIE==false)
nStageHeight-=8;
}
var nTabsWidth=(bIncSplitter?Math.round(nStageWidth*Splitter_fRatio):oTabs.style.width.replace('px',''));
if(nTabsWidth<0)nTabsWidth=0
if(nStageWidth<0)nStageWidth=0;
if(nStageHeight<0)nStageHeight=0;
var bLoadPagesInView=false;
if(nStageHeight<30){
oTabs.style.display="none";
oSplitterContainer.style.display="none";
BV_oBook.style.display="none";
BV_bStageIsVisible=false;
}
else{
bLoadPagesInView=(BV_bStageIsVisible==false);
oSplitterContainer.style.display="";
BV_oBook.style.display="";
BV_bStageIsVisible=true;
var nWidth=nStageWidth-(Splitter_fRatio>0?nTabsWidth:0);
if(nTabsWidth>0&&Splitter_fRatio>0){
if(!isIE)oTabs.style.direction="rtl";
oTabs.style.height=(isIE?nStageHeight:nStageHeight-15)+"px";
oTabs.style.width=nTabsWidth+"px";
oSplitterContainer.style.width=(16+Splitter_nWidth)+"px";
oSplitterLine.style.height=nStageHeight+"px";
oSplitterLine.style.width=Splitter_nWidth+"px";
oSplitterLine.style.display="";
oSplitterContainer.style.height=(isIE?nStageHeight+"px":'100%');
oSplitterLine.style.height=(isIE?nStageHeight+"px":'100%');
oOpenedSplitter.style.height=(true?nStageHeight+"px":'100%');
oClosedSplitterLine.style.height=(isIE?nStageHeight+"px":'100%');
oClosedSplitterLine.style.display="";
nWidth-=Splitter_nWidth;
if(isIE)
BV_SetDisplaySize(nWidth,nStageHeight);
else
BV_SetDisplaySize(nWidth-13,nStageHeight);
}
else{
oTabs.style.display="none";
oSplitterLine.style.display="none";
oClosedSplitterLine.style.display="none";
oSplitterContainer.style.width='16px';
BV_SetDisplaySize(nWidth,nStageHeight);
}
if(!isRTL())
SetAjaxAjaxMessageCustomContainerLeft((nTabsWidth*1+Splitter_nWidth*1+(nTabsWidth>0?15:0)+12));
else
SetAjaxAjaxMessageCustomContainerLeft(15);
nLastScrollWidth=0;
if(bLoadPagesInView==true){
PageContent_LoadPagesInView(false);
}
}
Tabs_AutoScrollLeft();
}
function BV_SetDisplaySize(nWidth,nHeight){
if(BV_bMarkerScriptsLoaded)BV_SmartHideMarkerBubble("BV_SetDisplaySize",false);
if(nWidth>100&&nHeight>100){
SetAjaxAjaxMessageCustomContainerWidth(nWidth);
BV_oBook.style.width=nWidth+"px";
BV_oBook.style.height=nHeight+"px";
BV_oBook.style.display="block";
BV_oBook.style.visibility="visible";
BookPages_ApplyPageSize();
if(Viewer_bVisibleForTheFirstTime&&!Viewer_bFirstDisplaySize){
Viewer_bVisibleForTheFirstTime=false;
try{
if(BV_sHashOnLoad!=''){
window.setTimeout("BV_GoToPositionByOriginalHashedInstruction('"+BV_sHashOnLoad+"')",1000);
BV_sHashOnLoad='';
}
}catch(e){}
}
}
else{
SetAjaxAjaxMessageCustomContainerWidth(0);
ShowAjaxNotification("אין מקום להציג את הספר");
BV_oBook.style.display="none";
}
Viewer_bFirstDisplaySize=false;
if(BV_bMarkerScriptsLoaded)BV_SmartShowMarkerBubble(true);
}
function BV_GoToPositionByOriginalHashedInstruction(sHash){
var aParts=sHash.split(".")
if(aParts.length>3){
try{
var nPage=eval(aParts[0])
var nOffset=eval(aParts[1])
BV_GotoPage(nPage,nOffset);
}catch(e){}
}
}
var DelayStatisticsTimeOut;
function OnCurrentPageChange(){
if(BV_bStageIsVisible==false)
return;
var oPageNum=document.getElementById("oPageNum");
if(oPageNum!=null)
oPageNum.value=BV_GetCurrentPageLabel();
window.clearTimeout(DelayStatisticsTimeOut);
var nDelay=5000;
if(BV_UpdateBrowserLocation_Timeout<5000)
nDelay=nDelay-BV_UpdateBrowserLocation_Timeout;
DelayStatisticsTimeOut=window.setTimeout(DelayStatistics,nDelay);
}
function DelayStatistics(){
window.clearTimeout(DelayStatisticsTimeOut);
var sCurrentBookUrl=window.location+"";
sCurrentBookUrl=encodeKotar(sCurrentBookUrl);
var params=new Array(
{name:"tmp",value:"tmp"},
{name:"nPageID",value:BV_GetCurrentPageID()},
{name:"nBookID",value:BV_nBookID},
{name:"sCurrentBookUrl",value:sCurrentBookUrl});
executeCombinedWebRequest(["Statistics.RegisterCurrentPageView","Session.UpdateCurrentBookUrl"],params,null,null,"UpdateCurrentBookUrl_OnComplete");
}
function UpdateCurrentBookUrl_OnComplete(){
}
function clientActiveTabChanged(sTabID){
$("divToc").style.display="none";
$("divSearchInBook").style.display="none";
$("divBookInfo").style.display="none";
if(BV_bSupportsLayersInViewer)
$("divUGCLayers").style.display="none";
$("tdBookInfo").className="tab";
$("tdSearchInBook").className="tab";
$("tdToc").className="tab";
if(BV_bSupportsLayersInViewer)
$("tdUGCLayers").className="tab";
$("tdClipboard").className="tab";
var tab=$(sTabID);
tab.className="selectedTab";
$("divSearchInBook").style.display="none";
$("divToc").style.display="none";
$("trBookInfoContent").style.display="none";
switch(sTabID){
case"tdBookInfo":
$("trBookInfoContent").style.display="";
break;
case"tdSearchInBook":
$("divSearchInBook").style.display="";
break;
case"tdToc":
$("divToc").style.display="";
break;
case"tdUGCLayers":
if(BV_bSupportsLayersInViewer){
$("divUGCLayers").style.display="";
if(BV_bMarkerScriptsLoaded)
MarkersMgr_OnShowLayersTab();
else
window.setTimeout("MarkersMgr_OnShowLayersTab()",3000);
}
break;
case"tdClipboard":
$("divBookClips").style.display="";
break;
}
Tabs_AutoScrollLeft();
}
function TocTreeAfterClientToggleHandler(node){
Tabs_AutoScrollLeft()
}
function Tabs_AutoScrollLeft(){
$("oTabs").scrollLeft=GetAutoScrollLeft();
}
function GetAutoScrollLeft(){
return(isRTL()?100000:-10000);
}
function Viewer_AddPrintEventHandlers(){
if(isIE==true){
window.onbeforeprint=Viewer_OnBeforePrint;
window.onafterprint=Viewer_OnAfterPrint;
}
}
function Viewer_OnBeforePrint(){
Viewer_ReplaceViewerWithPageToBePrinted();
}
function Viewer_OnAfterPrint(){
Viewer_ReplacePrintedPageWithViewer();
}function ToolBar_SetAutoFitMode(){
Utilities_SetCtrlClass("fit","Button Toolbar_fit");
Utilities_SetCtrlClass("fitW","Button Toolbar_fitW");
if(BV_GetAutoFitMode()=="fitpage")
Utilities_SetCtrlClass("fit","ButtonSelected Toolbar_fit_S");
else if(BV_GetAutoFitMode()=="fitwidth")
Utilities_SetCtrlClass("fitW","ButtonSelected Toolbar_fitW_S");
}
function ToolBar_OnClickFitPage(){
if(BV_PageResizeIsEnabled==false)
return;
Utilities_SetCtrlClass("fit","Button Toolbar_fit");
Utilities_SetCtrlClass("fitW","Button Toolbar_fitW");
if(BV_GetAutoFitMode()!="fitpage"){
Utilities_SetCtrlClass("fit","ButtonSelected Toolbar_fit_S");
BV_SetAutoFitMode("fitpage",false);
}
else if(BV_GetAutoFitMode()=="fitpage")
BV_SetAutoFitMode("none",false);
}
function ToolBar_OnClickFitWidth(){
if(BV_PageResizeIsEnabled==false)
return;
Utilities_SetCtrlClass("fit","Button Toolbar_fit");
Utilities_SetCtrlClass("fitW","Button Toolbar_fitW");
if(BV_GetAutoFitMode()!="fitwidth"){
Utilities_SetCtrlClass("fitW","ButtonSelected Toolbar_fitW_S");
BV_SetAutoFitMode("fitwidth",false);
}
else if(BV_GetAutoFitMode()=="fitwidth")
BV_SetAutoFitMode("none",false);
}
function BV_GetVerifiedPosition(){
BV_UpdateBrowserLocation_OnTimer();
var n=location.href.lastIndexOf("#");
if(n!=-1){
var aParts=location.href.substr(n+1).split(".");
if(aParts.length>3){
return aParts;
}
}
return null;
}
var BV_PrePageSizeChangePosition=null;
function BV_RememberCurrentPosition(){
BV_PrePageSizeChangePosition=BV_GetVerifiedPosition();
}
function BV_SetAutoFitMode(sMode,bForceRefresh){
BV_RememberCurrentPosition();
if(BV_bMarkerScriptsLoaded)BV_SmartHideMarkerBubble("BV_SetAutoFitMode",false);
if(BV_sAutoFitMode!=sMode||bForceRefresh){
BV_sAutoFitMode=sMode;
if(BV_bMarkerScriptsLoaded)MarkersMgr_OnBookLayoutModification();
BookPages_ApplyPageSize();
}
if(BV_bMarkerScriptsLoaded)BV_SmartShowMarkerBubble(true);
}
function BV_GetAutoFitMode(){
return BV_sAutoFitMode;
}
var BV_ZOOM_TIMEOUT_DELAY=200;
var BV_ZoomIn_TimeoutID=0;
function BV_ZoomIn(bMax){
if(BV_PageResizeIsEnabled==false)
return;
if(bMax){
window.clearTimeout(BV_ZoomIn_TimeoutID);
BV_ZoomIn_OnTimeout(true);
}
else
BV_ZoomIn_TimeoutID=window.setTimeout("BV_ZoomIn_OnTimeout(false);",BV_ZOOM_TIMEOUT_DELAY);
}
function BV_ZoomIn_OnTimeout(bMax){
window.clearTimeout(BV_ZoomIn_TimeoutID);
Utilities_SetCtrlClass("fit","Button Toolbar_fit");
Utilities_SetCtrlClass("fitW","Button Toolbar_fitW");
if(BV_nCurrentSizeStep<BV_nMaxSizeStep){
if(bMax)
BV_nCurrentSizeStep=BV_nMaxSizeStep;
else
BV_nCurrentSizeStep++;
BookPages_SetWidthAndHeightToSelectedSizeStep();
BV_SetAutoFitMode("none",true);
}
else
ShowAjaxMessageBox(TXT_YoureAtMaximunZoomLevel);
}
var BV_ZoomOut_TimeoutID=0;
function BV_ZoomOut(bMax){
if(BV_PageResizeIsEnabled==false)
return;
if(bMax){
window.clearTimeout(BV_ZoomOut_TimeoutID);
BV_ZoomOut_OnTimeout(true);
}
else
BV_ZoomOut_TimeoutID=window.setTimeout("BV_ZoomOut_OnTimeout(false);",BV_ZOOM_TIMEOUT_DELAY);
}
function BV_ZoomOut_OnTimeout(bMax){
window.clearTimeout(BV_ZoomOut_TimeoutID);
Utilities_SetCtrlClass("fit","Button Toolbar_fit");
Utilities_SetCtrlClass("fitW","Button Toolbar_fitW")
if(BV_nCurrentSizeStep>BV_nMinSizeStep){
if(bMax)
BV_nCurrentSizeStep=BV_nMinSizeStep;
else
BV_nCurrentSizeStep--;
BookPages_SetWidthAndHeightToSelectedSizeStep();
BV_SetAutoFitMode("none",true);
}
else
ShowAjaxMessageBox(TXT_YoureAtMinimunZoomLevel);
}
var BV_UpdateZoomButtonsState_TimeoutID=0;
var BV_PageResizeIsEnabled=true;
function BV_DisablePageSizeButtons(){
BV_PageResizeIsEnabled=false;
if(BV_GetAutoFitMode()!="fitpage")
Utilities_SetCtrlClass("fit","ButtonSelected Toolbar_fit_disabled");
if(BV_GetAutoFitMode()!="fitwidth")
Utilities_SetCtrlClass("fitW","ButtonSelected Toolbar_fitW_disabled");
Utilities_SetCtrlClass("zoomin","ButtonSelected Toolbar_zoomin_disabled");
Utilities_SetCtrlClass("zoomout","ButtonSelected Toolbar_zoomout_disabled");
}
function BV_EnablePageSizeButtons(){
Utilities_SetCtrlClass("fit",(BV_GetAutoFitMode()=="fitpage"?"ButtonSelected Toolbar_fit_S":"Button Toolbar_fit"));
Utilities_SetCtrlClass("fitW",(BV_GetAutoFitMode()=="fitwidth"?"ButtonSelected Toolbar_fitW_S":"Button Toolbar_fitW"));
BV_UpdateZoomButtonsState();
BV_PageResizeIsEnabled=true;
}
function BV_UpdateZoomButtonsState(){
if($("zoomin")==null){
if(BV_UpdateZoomButtonsState_TimeoutID>0)
window.clearTimeout(BV_UpdateZoomButtonsState_TimeoutID);
BV_UpdateZoomButtonsState_TimeoutID=window.setTimeout("BV_UpdateZoomButtonsState()",200);
return;
}
Utilities_SetCtrlClass("zoomin",(BV_nCurrentSizeStep<BV_nMaxSizeStep?"Button Toolbar_zoomin":"ButtonSelected Toolbar_zoomin_disabled"));
Utilities_SetCtrlClass("zoomout",(BV_nCurrentSizeStep>BV_nMinSizeStep?"Button Toolbar_zoomout":"ButtonSelected Toolbar_zoomout_disabled"));
}function BookPages_ApplyPageSize(){
var nMaxWidth=0,nDesiredWidth=0,nDesiredHeight=0;
switch(BV_sAutoFitMode){
case"fitpage":
nDesiredHeight=BV_oBook.offsetHeight;
nDesiredWidth=Math.round(nDesiredHeight*BV_nPageDefaultImageWidth/BV_nPageDefaultImageHeight);
if(nDesiredWidth>BV_oBook.offsetWidth){
nDesiredWidth=BV_oBook.offsetWidth;
nDesiredHeight=Math.round(nDesiredWidth*BV_nPageDefaultImageHeight/BV_nPageDefaultImageWidth);
}
break;
case"fitwidth":
nMaxWidth=BV_aSizeSteps[BV_nMaxSizeStep].nWidth;
nDesiredWidth=BV_oBook.offsetWidth-BV_nPagePadding_Left-BV_nPagePadding_Right-BV_nScrollbarWidth-4;
if(nDesiredWidth>nMaxWidth)
nDesiredWidth=nMaxWidth;
nDesiredHeight=Math.round(nDesiredWidth*BV_nPageDefaultImageHeight/BV_nPageDefaultImageWidth);
break;
default:
nDesiredWidth=BV_nPageImageWidth;
nDesiredHeight=BV_nPageImageHeight;
break;
}
bookpages_setActualSizeStep(nDesiredWidth,nDesiredHeight);
BookPages_SetWidthAndHeightToSelectedSizeStep();
BookPages_PrepareNewBookPageSize();
BV_UpdateZoomButtonsState();
}
var _lastPreparedBookPageSize=(-1);
function BookPages_ClearLastPreparedBookPageSize(){
_lastPreparedBookPageSize=(-1);
}
function BookPages_PrepareNewBookPageSize(){
if(_lastPreparedBookPageSize==BV_nCurrentSizeStep)
return;
_lastPreparedBookPageSize=BV_nCurrentSizeStep;
BV_nPagesPosDelta=0;
bookpages_UpdatePageStyle();
}
function BookPages_SetWidthAndHeightToSelectedSizeStep(){
BV_nPageImageWidth=BookPages_GetCurrentSizeStepWidth();
BV_nPageImageHeight=BookPages_GetCurrentSizeStepHeight();
}
function BookPages_GetCurrentSizeStepWidth(){
return BV_aSizeSteps[BV_nCurrentSizeStep].nWidth;
}
function BookPages_GetCurrentSizeStepHeight(){
return BV_aSizeSteps[BV_nCurrentSizeStep].nHeight;
}
function BookPages_ClearAllPageBackgroundsAndOverlays(){
var aPagesToClear=BookPageState_GetPagesWithLoadedBg();
var nLen=aPagesToClear.length;
for(nPage=0;nPage<nLen;nPage++){
if(!BV_SetPageBackgroundImage(aPagesToClear[nPage],''))
return;
}
nLen=BV_nTotalPages;
var bChkVisibility=BookPageState_SomePagesAreNotVisible();
for(nPage=0;nPage<nLen;nPage++){
var oWrapper=$("BV_oPageWrapper_"+nPage);
if(oWrapper==null)
return;
oWrapper.style.display="";
if(bChkVisibility&&!BookPageState_GetIsVisible(nPage))
oWrapper.style.display="none";
}
}
function bookpages_setActualSizeStep(nDesiredWidth,nDesiredHeight){
var bBiggerStep=0;
for(var s=0;s<BV_aSizeSteps.length&&bBiggerStep==0;s++){
if(BV_aSizeSteps[s].nWidth>nDesiredWidth)
bBiggerStep=s;
}
if(bBiggerStep==0)
bBiggerStep=BV_nMaxSizeStep;
var bSmallerStep=(bBiggerStep>BV_nMinSizeStep?bBiggerStep-1:BV_nMinSizeStep);
var nDeltaToSmaller=Math.abs(BV_aSizeSteps[bSmallerStep].nWidth-nDesiredWidth);
var nDeltaToBigger=Math.abs(BV_aSizeSteps[bBiggerStep].nWidth-nDesiredWidth);
switch(BV_sAutoFitMode){
case"fitpage":
BV_nCurrentSizeStep=(nDeltaToBigger<=0?bBiggerStep:bSmallerStep);
break;
case"fitwidth":
BV_nCurrentSizeStep=(nDeltaToBigger<=0?bBiggerStep:bSmallerStep);
break;
default:
BV_nCurrentSizeStep=((nDeltaToSmaller<nDeltaToBigger)?bSmallerStep:bBiggerStep);
break;
}
}
function bookpages_GetBackgroundImageForPageSize(){
if(isNaN(BV_nPageImageWidth)||isNaN(BV_nPageImageHeight)){
BV_nPageImageWidth=BookPages_GetCurrentSizeStepWidth();
BV_nPageImageHeight=BookPages_GetCurrentSizeStepHeight();
}
var sUrl=BV_sPageBackgroundImageUrlFormat;
sUrl=sUrl.replace("{nPageWidth}",BV_nPageImageWidth);
sUrl=sUrl.replace("{nPageHeight}",BV_nPageImageHeight);
return sUrl
}
function bookpages_UpdatePageStyle(){
var loader=new ImageLoader(bookpages_GetBackgroundImageForPageSize());
BookPages_ClearAllPageBackgroundsAndOverlays();
if(BV_bPostLoadScriptsAvailable)
Highlights_ClearAll(false);
loader.loadEvent=function(url,image){
if(isIE)
bookpages_ApplyNewStyleRules();
}
loader.load();
if(!isIE)
bookpages_ApplyNewStyleRules();
}
var BV_nWirePageEventsTimeoutID=0;
function bookpages_ApplyNewStyleRules(){
BV_DisablePageSizeButtons();
BV_ApplyingNewStyleRules=true;
var aCurrPosition=(BV_PrePageSizeChangePosition==null?BV_GetVerifiedPosition():BV_PrePageSizeChangePosition);
BV_PrePageSizeChangePosition=null;
if(AdTools_bShowWireframe||AdTools_bShowWordWireframe||AdTools_bShowLineWireframe)
BV_RemoveAllWireframeElements();
bookpages_SetWireframeStyleRule();
bookpages_SetHighlightsStyleRule();
bookpages_SetPageBackgroundStyleRule();
bookpages_SetPageAndImageStyleRules();
bookpages_SetAddToBasketStyleRule();
if(BV_bApplyNewStyleRulesForTheFirstTime)
BV_bApplyNewStyleRulesForTheFirstTime=false;
else{
if(BV_bMarkerScriptsLoaded)MarkersMgr_ClearMarkerDomElements();
BV_oBook.innerHTML=BV_oBook.innerHTML;
}
if(Viewer_bLoadCompleted)
BookEvents_Wire();
window.clearTimeout(BV_nWirePageEventsTimeoutID);
BV_nWirePageEventsTimeoutID=window.setTimeout("bookpages_WirePageEvents();",1000);
BV_ComputePagesInView(false);
Pagescontent_SmartLoadClearQueue();
if(aCurrPosition!=null&&BV_bAllPagesAreLoaded==true&&aCurrPosition[0]!="undefined"&&aCurrPosition[1]!="undefined")
window.setTimeout("BV_GotoPage("+aCurrPosition[0]+", "+aCurrPosition[1]+"); PageContent_LoadHighQualityPagesInView();",50);
else
PageContent_LoadHighQualityPagesInView();
window.setTimeout("BV_EnablePageSizeButtons();",500);
}
function bookpages_SetPageBackgroundStyleRule(){
var params=new Array(
{name:"nWidth",value:BV_nPageImageWidth},
{name:"nHeight",value:BV_nPageImageHeight});
if(isIE){
BV_oBook.style.backgroundImage='url('+buildRequestURL("Pages.GetBackgroundImage",params)+')';
}
else{
var sStyle=
'background-repeat: no-repeat;'+
'background-position: 0px 0px;'+
'background: url('+buildRequestURL("Pages.GetBackgroundImage",params)+');'+
'margin-left:auto; margin-right:auto;'+
'width:'+(BV_nPageImageWidth+BV_nPagePadding_Left+BV_nPagePadding_Right)+'px;'+
'height:'+(BV_nPageImageHeight+BV_nPagePadding_Top+BV_nPagePadding_Bottom)+'px;'+
'overflow: hidden; border: solid 0px red;'
UTILS_UpdateStyleRule('DIV.BV_oPage',sStyle);
}
}
function bookpages_SetPageAndImageStyleRules(){
var sStyle='';
if(isIE){
sStyle=
'width:'+(BV_nPageImageWidth+BV_nPagePadding_Left+BV_nPagePadding_Right)+";"+
'height:'+(BV_nPageImageHeight+BV_nPagePadding_Top+BV_nPagePadding_Bottom)+";"+
'overflow: hidden;'+
'padding-top:'+BV_nPagePadding_Top+';'+
'padding-right:'+BV_nPagePadding_Right+';'+
'padding-left:'+BV_nPagePadding_Left+';'+
'padding-bottom:'+BV_nPagePadding_Bottom+';'
UTILS_UpdateStyleRule('DIV.BV_oPage',sStyle);
sStyle=
'width:'+BV_nPageImageWidth+";"+
'height:'+BV_nPageImageHeight+";"+
'background-position: right top;'+
'overflow: hidden;'+
'position: inline;'+
'background-repeat: no-repeat;'
UTILS_UpdateStyleRule('DIV.BV_oImage',sStyle);
}
else{
sStyle=
'width:'+BV_nPageImageWidth+'px;'+
'height:'+BV_nPageImageHeight+'px;'+
'margin-top:'+BV_nPagePadding_Top+'px;'+
'background-position: '+(isIE?'right top;':'0px 0px;')+
'position: relative; '+
'; overflow: hidden;  border: solid 0px yellow;'
UTILS_UpdateStyleRule('DIV.BV_oImage',sStyle);
}
}
function bookpages_SetHighlightsStyleRule(){
var sStyle=
'width:'+BV_nPageImageWidth+'px;'+
'height:'+BV_nPageImageHeight+'px;'+
'background-position: '+(isIE?'right top;':'0px 0px;')+
'overflow: hidden;'+
'filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=25);'
UTILS_UpdateStyleRule('DIV.BV_oHighlights',sStyle);
}
function bookpages_SetWireframeStyleRule(){
var sStyle=
'z-index: 1;'+
'position: absolute;'+
'top: 0px;'+
'left: 0px;'+
'width:'+BV_nPageImageWidth+'px;'+
'height:'+BV_nPageImageHeight+'px;'+
'background-position: '+(isIE?'right top;':'0px 0px;')+
'overflow: hidden;';
UTILS_UpdateStyleRule('DIV.BV_oWireframeElements',sStyle);
}
function bookpages_SetAddToBasketStyleRule(){
var sStyle=
'z-index: 0;'+
'position: relative;'+
'top: 0px;'+
'left: 0px;'+
'width: 100%;'+
'height: 100%;'+
'padding-top: '+(BV_nPageImageHeight-200)/2+'px';
UTILS_UpdateStyleRule('.BV_AddToBasket_Wrapper',sStyle);
}
function bookpages_WirePageEvents(){
if((isIE&&BV_oBook.children.length==0)||(!isIE&&BV_oBook.childNodes.length<3))
return;
var nPages=BV_nTotalPages;
if(isIE){
for(var nPageIndex=0;nPageIndex<nPages;nPageIndex++){
UTILS_AddHandler(BV_GetPageImageElement(nPageIndex),"mousedown",function(e){Page_OnMouseDown(e)});
}
}
else{
for(var nPageIndex=0;nPageIndex<nPages;nPageIndex++){
var oPage=BV_oBook.childNodes[nPageIndex].childNodes[0];
UTILS_AddHandler(oPage,"mousedown",function(e){Page_OnMouseDown(e)});
UTILS_AddHandler(oPage,"mousemove",function(e){Page_OnMouseMove(e)});
UTILS_AddHandler(oPage,"mouseup",function(e){Page_OnMouseUp(e)});
}
}
}
function BV_ComputePagesInView(bForceUrlUpdate){
var nPagesPosDelta=BV_GetPagesPosDelta();
var nScrollTop=BV_oBook.scrollTop;
var nScrollBottom=nScrollTop+BV_oBook.offsetHeight-1;
var dTopPage=(nScrollTop-BV_nFirstPagePos)/nPagesPosDelta;
var dBottomPage=(nScrollBottom-BV_nFirstPagePos)/nPagesPosDelta;
BV_nTopPageInView=Math.floor(dTopPage);
BV_nBottomPageInView=Math.floor(dBottomPage);
if(BV_nTopPageInView<0)
BV_nTopPageInView=0;
if(BV_nBottomPageInView>(BV_nTotalPages-1))
BV_nBottomPageInView=BV_nTotalPages-1;
BV_nOffsetInPage=nScrollTop-(nPagesPosDelta*BV_nTopPageInView);
if(BV_nOffsetInPage!=0)
BV_nOffsetInPage=Math.floor(BV_nOffsetInPage*UTILS_nLogicalUnits/nPagesPosDelta);
if(AdTools_bShowOnlyPagesWithPics||AdTools_bShowOnlyLockedPages)
BV_TranslateToVisiblePagesInView();
else{
if(BV_nTopPageInView!=BV_nLastTopPageInView)
OnCurrentPageChange();
if(BV_nTopPageInView!=BV_nLastTopPageInView||bForceUrlUpdate){
BV_nLastTopPageInView=BV_nTopPageInView;
if(BV_UpdateBrowserLocation_Timer>0)
window.clearTimeout(BV_UpdateBrowserLocation_Timer);
BV_UpdateBrowserLocation_Timer=window.setTimeout("BV_UpdateBrowserLocation_OnTimer()",BV_UpdateBrowserLocation_Timeout);
}
TOC_ComputeCurrentLocation();
BV_ShowAjaxPageRange();
}
}
function BV_TranslateToVisiblePagesInView(){
var nTop=(-1),nBottom=(-1);
var nVisible=0;
for(var n=0;n<BV_nTotalPages&&nTop==(-1);n++){
if(BookPageState_GetIsVisible(n))
nVisible++;
if(nVisible==(BV_nTopPageInView+1))
nTop=n;
}
nBottom=nTop;
if(BV_nBottomPageInView>BV_nTopPageInView){
for(var n=nTop+1;n<BV_nTotalPages&&nBottom==nTop;n++){
if(BookPageState_GetIsVisible(n))
nVisible++;
if(nVisible==(BV_nBottomPageInView+1))
nBottom=n;
}
}
if(nTop==(-1))
nTop=0;
if(nBottom==(-1))
nBottom=0;
BV_nTopPageInView=nTop;
BV_nBottomPageInView=nBottom;
}
var BV_sLastDisplayedAjaxPageRange="";
function BV_ShowAjaxPageRange(){
if(BV_nTopPageInView>=0&&BV_nTopPageInView<BV_nTotalPages&&
BV_nBottomPageInView>=0&&BV_nBottomPageInView<BV_nTotalPages){
var nTop=BV_nTopPageInView;
var nBottom=BV_nBottomPageInView;
var bDiff=(nTop!=nBottom);
nTop=BookPageState_GetPageLabel(BV_nTopPageInView);
nBottom=BookPageState_GetPageLabel(BV_nBottomPageInView);
var sPageRange="";
if(bDiff)
sPageRange=TXT_Pages+": "+nTop+" "+TXT_To+" "+nBottom;
else if(BV_nTopPageInView<(BV_nTotalPages-1))
sPageRange=TXT_Page+": "+nTop;
else
sPageRange=TXT_Page+": "+nBottom;
if(sPageRange!=BV_sLastDisplayedAjaxPageRange){
ShowAjaxMessageBox(sPageRange);
BV_sLastDisplayedAjaxPageRange=sPageRange;
}
}
}
function BV_GetViewportHeight(){
var nScrollTop=BV_oBook.scrollTop;
var nScrollBottom=nScrollTop+BV_oBook.offsetHeight-1;
return(nScrollBottom-nScrollTop);
}
function BV_ComputePageVisiblePortion(nPageIndex){
try{
if(nPageIndex>BV_nTotalPages||nPageIndex<0)
return 0;
var nScrollTop=BV_oBook.scrollTop;
var nScrollBottom=nScrollTop+BV_oBook.offsetHeight-1;
var nViewportHeight=BV_GetViewportHeight();
var nPagesPosDelta=BV_GetPagesPosDelta();
var nPageTop=(nScrollTop-BV_nFirstPagePos)-(nPageIndex*nPagesPosDelta);
if(nPageTop>nScrollBottom||((nPageIndex+1)*nPagesPosDelta)<nScrollTop){
return 0;
}
else{
var nHiddenPart=nScrollTop-(nPageIndex*nPagesPosDelta);
var nVisiblePagePart=0;
if(nHiddenPart>=0)
nVisiblePagePart=nPagesPosDelta-nHiddenPart;
else
nVisiblePagePart=nViewportHeight+nHiddenPart;
var nPercentage=nVisiblePagePart/(nPagesPosDelta/100);
if(nPercentage>100)
nPercentage=100;
return nPercentage;
}
}catch(e){
}
return 0;
}
function BookPageState_Update(nPageNum,oPageInfo){
BookPageState_SetHasMarkers(nPageNum,oPageInfo.bMarkers);
BookPageState_SetMarkersLoaded(nPageNum,false);
BookPageState_SetIsMarkedAsClosed(nPageNum,oPageInfo.bIsClosed);
BookPageState_SetHasPictures(nPageNum,oPageInfo.bPictures);
if(oPageInfo.bOpen!=BookPageState_GetIsOpen(nPageNum)){
var oImage=BV_GetPageImageElement(nPageNum);
oImage.style.backgroundImage="url('')";
}
BookPageState_SetIsOpen(nPageNum,oPageInfo.bOpen);
}
function BookPageState_PageExists(nPageNum){return(typeof(oPagesInfo.pages[nPageNum])!="undefined");}
function BookPageState_GetPageID(nPageNum){return(oPagesInfo.pages[nPageNum].pid);}
function BookPageState_GetPageIndex(nPageID){return(aBookPagesInfo[nPageID]);}
function BookPageState_GetPageNumber(nPageID){return(aBookPagesInfo[nPageID]+1);}
function BookPageState_GetPageLabel(nPageNum){return(oPagesInfo.pages[nPageNum].lbl);}
function BookPageState_GetIsPrintable(nPageNum){return BookPageState_GetIsOpen(nPageNum);}
function BookPageState_GetPageImageVersion(nPageNum){return(oPagesInfo.pages[nPageNum].v);}
function BookPageState_GetIsOpen(nPageNum){return(oPagesInfo.pages[nPageNum].o);}
function BookPageState_SetIsOpen(nPageNum,bIsOpen){oPagesInfo.pages[nPageNum].o=bIsOpen;}
function BookPageState_GetHasHighlights(nPageNum){return(oPagesInfo.pages[nPageNum].h==1);}
function BookPageState_SetHasHighlights(nPageNum,bHasHighlights){oPagesInfo.pages[nPageNum].h=(bHasHighlights?1:0);}
function BookPageState_GetHasCartCover(nPageNum){return(oPagesInfo.pages[nPageNum].hc==1);}
function BookPageState_SetHasCartCover(nPageNum,bHasCover){oPagesInfo.pages[nPageNum].hc=(bHasCover?1:0);}
function BookPageState_GetHasMarkers(nPageNum){return(oPagesInfo.pages[nPageNum].m==1);}
function BookPageState_SetHasMarkers(nPageNum,bHasMarkers){oPagesInfo.pages[nPageNum].m=(bHasMarkers?1:0);}
function BookPageState_GetMarkersLoaded(nPageNum){return(oPagesInfo.pages[nPageNum].ml==1);}
function BookPageState_SetMarkersLoaded(nPageNum,bMarkersLoaded){oPagesInfo.pages[nPageNum].ml=(bMarkersLoaded?1:0);}
function BookPageState_ResetMarkersLoadedForAllPages(){
var nPages=BV_nTotalPages;
for(var nPageNum=0;nPageNum<nPages;nPageNum++){
oPagesInfo.pages[nPageNum].ml=0;
}
}
function BookPageState_GetHasPictures(nPageNum){return(oPagesInfo.pages[nPageNum].hp==1);}
function BookPageState_SetHasPictures(nPageNum,bHasPictures){oPagesInfo.pages[nPageNum].hp=(bHasPictures?1:0);}
function BookPageState_GetIsMarkedAsClosed(nPageNum){return(oPagesInfo.pages[nPageNum].ic==1);}
function BookPageState_SetIsMarkedAsClosed(nPageNum,bIsClosed){oPagesInfo.pages[nPageNum].ic=(bIsClosed?1:0);}
function BookPageState_GetBgLoaded(nPageNum){return(oPagesInfo.pages[nPageNum].BgLoaded==true);}
function BookPageState_SetBgLoaded(nPageNum,bLoaded){oPagesInfo.pages[nPageNum].BgLoaded=bLoaded;}
function BookPageState_GetPagesWithLoadedBg(){
var aPages=new Array();
var n=0,nPages=BV_nTotalPages;
for(var nPageNum=0;nPageNum<nPages;nPageNum++){
if(oPagesInfo.pages[nPageNum].BgLoaded)
aPages[n++]=nPageNum;
}
return aPages;
}
function BookPagesState_SetDefaultFlagsForAllPages(){
var n=0,nPages=BV_nTotalPages;
for(var nPageNum=0;nPageNum<nPages;nPageNum++){
var oPage=oPagesInfo.pages[nPageNum];
oPage.BgLoaded=false;
oPage.ml=0;
oPage.hc=0;
}
}
function BookPageState_SomePagesAreNotVisible(){
return(AdTools_bShowOnlyPagesWithPics||AdTools_bShowOnlyLockedPages);
}
function BookPageState_GetIsVisible(nPageNum){
if(AdTools_bShowOnlyPagesWithPics)
return(BookPageState_GetHasPictures(nPageNum));
else if(AdTools_bShowOnlyLockedPages)
return(BookPageState_GetIsMarkedAsClosed(nPageNum));
else
return true;
}
var BV_nHQPages=3;
function PageContent_Load(nPageIndex,nDelay){
if(nPageIndex<0||nPageIndex>=BV_nTotalPages)
return;
var sPageBg=BV_GetPageBackgroundImage(nPageIndex);
if(sPageBg==""||sPageBg=="none")
pagecontent_LoadBackground(nPageIndex,(--BV_nHQPages>0));
if(BV_bPostLoadScriptsAvailable)Highlights_LoadPageHighlights(nPageIndex);
if(AdTools_bShowWireframe||AdTools_bShowWordWireframe||AdTools_bShowLineWireframe)
BV_LoadPageWireframe(nPageIndex);
MarkersMgr_ShowPageMarkers(nPageIndex);
}
function PageContent_LoadPagesInView(bGoToPage){
var nPage=0;
var nDelay=BV_SmartLoadInitialDelay;
BV_ComputePagesInView();
Pagescontent_SmartLoadClearQueue();
var oPreload=(BV_nBottomPageInView-BV_nTopPageInView);
for(nPage=BV_nTopPageInView;nPage<=BV_nBottomPageInView+oPreload;nPage++){
if(BookPageState_GetIsVisible(nPage)){
if(BookPageState_PageExists(nPage)
&&!BookPageState_GetIsOpen(nPage)
&&!BookPageState_GetHasCartCover(nPage))
Cart_CoverPage(nPage);
if(bGoToPage==true&&nDelay==BV_SmartLoadInitialDelay)
pagescontent_SmartLoadPageContent(nPage,0);
else{
pagescontent_SmartLoadPageContent(nPage,nDelay);
nDelay=nDelay+BV_SmartLoadDelayIncrement;
}
}
}
}
function PageContent_UnloadPagesOutOfView(){
var aPagesToClear=BookPageState_GetPagesWithLoadedBg();
var nLen=aPagesToClear.length;
for(nPage=0;nPage<nLen;nPage++){
if(aPagesToClear[nPage]<BV_nTopPageInView-2||aPagesToClear[nPage]>BV_nBottomPageInView+2){
if(!BV_SetPageBackgroundImage(aPagesToClear[nPage],''))
return;
}
}
}
function PageContent_LoadHighQualityPagesInView(){
var oPreload=(BV_nBottomPageInView-BV_nTopPageInView);
for(nPage=BV_nTopPageInView;nPage<=BV_nBottomPageInView+oPreload;nPage++){
pagecontent_LoadBackground(nPage,true);
pagescontent_SmartLoadPageContent(nPage,0);
}
}
var oSmartImageLoaders=new Array();
var oSmartImageQueue=".";
function pagescontent_GetSmartLoadQueueLength(){
return(oSmartImageQueue.split('.').length-2);
}
function pagescontent_SmartLoadPush(nPageIndex,nDelay){
oSmartImageQueue=oSmartImageQueue+nPageIndex+".";
oSmartImageLoaders["T:"+nPageIndex]=window.setTimeout("PageContent_Load("+nPageIndex+", "+nDelay+")",nDelay*BV_SmartLoadDelayUnit);
}
function pagescontent_SmartLoadPop(nPageIndex){
oSmartImageQueue=ReplaceAll(oSmartImageQueue,"."+nPageIndex+".",".");
}
function pagescontent_SmartLoadGetNextToPop(){
return oSmartImageQueue.split('.')[1];
}
function Pagescontent_SmartLoadClearQueue(){
while(pagescontent_GetSmartLoadQueueLength()>0){
var nIndex=pagescontent_SmartLoadGetNextToPop();
pagescontent_SmartLoadPop(nIndex);
window.clearTimeout(oSmartImageLoaders["T:"+nIndex]);
}
}
function pagescontent_SmartLoadPageContent(nPageIndex,nDelay){
if(oSmartImageQueue.indexOf("."+nPageIndex+".")>(-1))
return;
pagescontent_SmartLoadPush(nPageIndex,nDelay);
}
var HighQualityImages=new Array();
function pagecontent_LoadBackground(nPageIndex,bHQ){
if(nPageIndex>=BV_nTotalPages||nPageIndex<0)
return;
if(bHQ==false){
BV_SetPageBackgroundImage(nPageIndex,"url("+PageImages_GetPageImageURL(nPageIndex,bHQ)+")");
}else{
var sURL=PageImages_GetPageImageURL(nPageIndex,bHQ);
if(sURL=="")
return;
var oImage=new Image();
oImage.src=sURL;
HighQualityImages[HighQualityImages.length]={oImage:oImage,nPageIndex:nPageIndex,bUsed:false};
BV_nHighQualityImagesTimeoutID=window.setTimeout("pagecontent_HighQualityImages_OnTimeout()",100);
}
if(BV_bHasTOC)
LoadTocIfNotAlreadyLoaded();
}
var BV_nHighQualityImagesTimeoutID=0;
function pagecontent_HighQualityImages_OnTimeout(){
for(var i=0;i<HighQualityImages.length;i++){
var oHQI=HighQualityImages[i];
if(oHQI.oImage!=null&&oHQI.oImage.complete==true&&oHQI.bUsed==false){
oHQI.bUsed=true;
pagecontent_SetPageBackground(oHQI.nPageIndex);
oHQI.oImage.src='';
oHQI.oImage=null;
}
}
window.clearTimeout(BV_nHighQualityImagesTimeoutID);
BV_nHighQualityImagesTimeoutID=window.setTimeout("pagecontent_HighQualityImages_OnTimeout()",100);
}
function pagecontent_SetPageBackground(nPageIndex){
BV_SetPageBackgroundImage(nPageIndex,"url("+PageImages_GetPageImageURL(nPageIndex,true)+")");
}
function Page_IgnoreMouseDown(e){
if(window.event)e=window.event;
e.cancelBubble=true;
}
function Page_OnMouseMove(e){
if(BV_oResizedMarker!=null)
BV_EditableMarker_OnMouseMove(e);
}
function Page_OnMouseUp(e){
if(BV_oResizedMarker!=null)
BV_EditableMarker_OnMouseUp(e);
}
function Page_OnMouseDown(e){
if(window.event)e=window.event;
var srcEl=e.srcElement?e.srcElement:e.target;
var sID=srcEl.id;
var oPageElement=srcEl;
while(sID.indexOf("BV_oPage_")==(-1)&&oPageElement!=null){
oPageElement=(isIE?oPageElement.parentElement:oPageElement.parentNode);
sID=oPageElement.id;
}
if(oPageElement==null)
return;
srcEl=oPageElement;
var nPageIndex=srcEl.id.replace("BV_oPage_","")*1;
if(isNaN(nPageIndex))
return;
var bStopEvent=false;
if(srcEl.className=="BV_AddToBasket_Wrapper"||!BookPageState_GetIsOpen(nPageIndex)){
switch(BV_sActiveTool){
case BV_SELECT:
Utils_ShowMessageDialog(TXT_CantAddHighlightsToClosedPage,TXT_BlockedAction,true);
break;
case BV_PUSHPIN:
Utils_ShowMessageDialog(TXT_CantAddNotesToClosedPage,TXT_BlockedAction,true);
break;
case BV_COPY:
Utils_ShowMessageDialog(TXT_CantCopyFromClosedPage,TXT_BlockedAction,true);
break;
case BV_LINK:
Utils_ShowMessageDialog(TXT_CantAddLinksToClosedPage,TXT_BlockedAction,true);
break;
}
bStopEvent=true;
e.cancelBubble=true;
return false;
}
bStopEvent=true;
switch(BV_sActiveTool){
case BV_SELECT:BV_StartSelection(nPageIndex,e);break;
case BV_PUSHPIN:BV_PlacePushpin(nPageIndex,e);break;
case BV_COPY:BV_StartCopySelection(nPageIndex,e);break;
case BV_ISOLATE:BV_StartIsolateSelection(nPageIndex,e);break;
case BV_LINK:BV_StartLinkSelection(nPageIndex,e);break;
default:
bStopEvent=false;
break;
}
if(bStopEvent){
e.cancelBubble=true;
return false;
}
return true;
}
function BV_InsistOnGotoPage(nPageNum,nInPageOffset,nRetries){
if(BV_GotoPage(nPageNum,nInPageOffset)==false&&nRetries>0){
nRetries--;
window.setTimeout("BV_InsistOnGotoPage("+nPageNum+", "+nInPageOffset+", "+nRetries+")",1000);
}
}
function BV_GotoPage(nPageNum,nInPageOffset){
if(nPageNum<0)
nPageNum=0;
if(nPageNum>BV_nTotalPages)
nPageNum=BV_nTotalPages;
if(AdTools_bShowOnlyPagesWithPics||AdTools_bShowOnlyLockedPages)
nPageNum=BV_GetClosestVisiblePage(nPageNum);
if(nPageNum>=0&&nPageNum<=BV_nTotalPages){
var nScrollTop=(nPageNum-1)*BV_GetPagesPosDelta();
if(typeof(nInPageOffset)!="undefined")
nScrollTop+=Math.floor((nInPageOffset*BV_GetPagesPosDelta())/UTILS_nLogicalUnits);
if(nScrollTop<0)
nScrollTop=0;
BV_oBook.scrollTop=nScrollTop;
return(BV_oBook.scrollTop==nScrollTop);
}
}
function BV_GetClosestVisiblePage(nPageNum){
var nVisible=0,n;
for(n=0;n<nPageNum;n++){
if(BookPageState_GetIsVisible(n))
nVisible++;
}
if(!BookPageState_GetIsVisible((nPageNum-1)))
ShowAjaxNotification(TXT_ReqPageIsNotVisible+" ("+nPageNum+")");
else
HideAjaxMessageBox();
return nVisible;
}
function BV_GotoPageByLabel(sPageLabel){
for(var nPage=0;nPage<BV_nTotalPages;nPage++){
if(BookPageState_GetPageLabel(nPage)==sPageLabel){
if(!BookPageState_GetIsVisible(nPage)){
ShowAjaxNotification(TXT_ReqPageIsNotVisible+" ("+sPageLabel+")");
return true;
}
else{
BV_GotoPage(nPage+1);
return true;
}
}
}
return false;
}
function BV_GotoNextPage(){
BV_GotoPage(BV_nTopPageInView+2);
}
function BV_GotoPrevPage(){
BV_GotoPage(BV_nTopPageInView);
}
function PageImages_GetPageForPrintImageURL(nPageIndex){
return pageimages_CalcPageImageURL(nPageIndex,true,true);
}
function PageImages_GetPageImageURL(nPageIndex,bHQ){
return pageimages_CalcPageImageURL(nPageIndex,bHQ,false);
}
function pageimages_CalcPageImageURL(nPageIndex,bHQ,bForPrint){
if(nPageIndex<0)
return"";
if(BV_bPagesInStorage==false)
bHQ=true;
var bIsOpen=BookPageState_GetIsOpen(nPageIndex);
if(bForPrint==true&&bIsOpen==false)
return"";
var sCDN=BV_sCdnDomain.replace("$$",(BV_nCdnServers>1?(nPageIndex%BV_nCdnServers):""));
var sFormat=(bForPrint?BV_sPrintPageUrlFormat:(bIsOpen?BV_sOpenPageUrlFormat:BV_sClosedPageUrlFormat));
sFormat=sFormat.replace("{CDN}",sCDN);
sFormat=sFormat.replace("{nBookID}",BV_nBookID);
sFormat=sFormat.replace("{nPageNum}",nPageIndex+1);
sFormat=sFormat.replace("{nPageID}",BookPageState_GetPageID(nPageIndex));
sFormat=sFormat.replace("{nQuality}",(bHQ==true?BV_nHighQualitySizeStepID:BV_nLowQualitySizeStepID));
sFormat=sFormat.replace("{nStep}",(bIsOpen==true?
(BV_bPagesInStorage==true?BV_nCurrentSizeStep+1:BV_nCurrentSizeStep)
:(BV_bPagesInStorage==true?BV_nCurrentSizeStep+1:BV_nCurrentSizeStep)
));
sFormat=sFormat.replace("{nVersion}",BookPageState_GetPageImageVersion(nPageIndex));
if(BV_bPagesInStorage==false)
sFormat+=(sFormat==""?"?":"&")+"_bIsOpen="+bIsOpen;
if(!bForPrint&&sFormat.indexOf('http://')!=0&&BV_bPagesInStorage)
sFormat='http://'+sFormat;
return sFormat;
}function BV_GetPageWrapperElement(nPageIndex){
if(isIE)
return BV_oBook.children[nPageIndex];
else
return BV_oBook.childNodes[nPageIndex];
}
function BV_GetPageImageElement(nPageIndex){
var oElement=(isIE?BV_oBook.children[nPageIndex]:BV_oBook.childNodes[nPageIndex]);
if(oElement==null)
return;
if(isIE)
return oElement.children[0];
else
return oElement.childNodes[0];
}
function BV_AddElementToPage(nPageIndex,oElement){
if(isIE)
return BV_oBook.children[nPageIndex].children[0].appendChild(oElement);
else
return BV_oBook.childNodes[nPageIndex].childNodes[0].appendChild(oElement);
}
function BV_SetPageBackgroundImage(nPageIndex,sURL){
var oElement=BV_GetPageImageElement(nPageIndex);
if(oElement!=null){
var bPageImage=(sURL!="");
BookPageState_SetBgLoaded(nPageIndex,bPageImage);
oElement.style.backgroundImage=(bPageImage?sURL:"url('')");
return true;
}
return false;
}
function BV_GetPageBackgroundImage(nPageIndex){
var oElement=BV_GetPageImageElement(nPageIndex);
if(oElement!=null)
return oElement.style.backgroundImage;
return"";
}
function BV_GetPagesPosDelta(){
if(BV_nPagesPosDelta==0)
BV_nPagesPosDelta=BookPages_GetCurrentSizeStepHeight()+15;
return BV_nPagesPosDelta;
}
function BV_GetCurrentPageNum(){
return BV_nTopPageInView+1;
}
function BV_GetCurrentPageLabel(){
if(BV_nTopPageInView>=0&&BV_nTopPageInView<BV_nTotalPages)
return BookPageState_GetPageLabel(BV_nTopPageInView);
return"";
}
function BV_GetCurrentPageID(){
if(BV_nTopPageInView>=0&&BV_nTopPageInView<BV_nTotalPages)
return BookPageState_GetPageID(BV_nTopPageInView);
return"";
}
