home *** CD-ROM | disk | FTP | other *** search
/ ftp.rsa.com / 2014.05.ftp.rsa.com.tar / ftp.rsa.com / pub / agents / RSASecurIDTokenAuto412x64.msi / Data1.cab / _344E95BCA647A724D52373A7D5E6459D < prev    next >
Text File  |  2014-03-12  |  31KB  |  1,505 lines

  1. ∩╗┐//    WebHelp 5.10.007
  2. var gaHSLoad=new Array();
  3. var gnMinIdx=0;
  4. var gnInsIdx=-1;
  5. var gsLoadingDivID="LoadingDiv";
  6. var gsLoadingMsg="Loading, click here to cancel...";
  7. var gaProj=null;
  8. var gaTocs=new Array();
  9. var goChunk=null;
  10. var gbReady=false;
  11. var gbToc=false;
  12. var gbXML=false;
  13. var gaRoot=new Array();
  14. var gnCC=-1;
  15. var gsTP="";
  16. var gaBTPs="";
  17. var gsCTPath="";
  18. var gnLT=-1;
  19. var gsPathSplit="\n";
  20. var gsBgColor="#ffffff";
  21. var gsBgImage="";
  22. var goFont=null;
  23. var goHFont=null;
  24.  
  25. var gsMargin="0pt";
  26. var gsIndent="15pt";
  27. var gsABgColor="#cccccc";
  28.  
  29. var giBookClose="";
  30. var giBookOpen="";
  31. var giBookItem="";
  32. var giURLItem="";
  33. var giNewBookClose="";
  34. var giNewBookOpen="";
  35. var giNewBookItem="";
  36. var giNewURLItem="";
  37. var gnImages=0;
  38. var gnLoadedImages=0;
  39. var gaImgs=new Array();
  40. var gbLoadData=false;
  41. var gobj=null;
  42. var gaTocsNs61Fix=null;
  43. var gbWhTHost=false;
  44. var gBookItems=new Array();
  45. var gInSync=false;
  46. var gbLData=false;
  47. var gbNeedFillStub=false;
  48. var gbLoadToc=false;
  49.  
  50. function chunkInfoQueue()
  51. {
  52.     this.aContent=new Array();
  53.     this.inQueue=function(cInfo)
  54.     {
  55.         this.aContent[this.aContent.length]=cInfo;
  56.     }
  57.     this.deQueue=function()
  58.     {
  59.         var cInfo=null;
  60.         if(this.aContent.length>0)
  61.         {
  62.             cInfo=this.aContent[0];
  63.             for(var i=1;i<this.aContent.length;i++)
  64.                 this.aContent[i-1]=this.aContent[i];
  65.             this.aContent.length--;
  66.         }
  67.         return cInfo;
  68.     }
  69.     this.length=function()
  70.     {
  71.         return this.aContent.length;
  72.     }
  73. }
  74.  
  75. var gchunkRequestQueue=new chunkInfoQueue();
  76.  
  77. function chunkInfo(nIdx, bLocal)
  78. {
  79.     this.nIdx=nIdx;
  80.     this.bLocal=bLocal;
  81. }
  82.  
  83. function setBackground(sBgImage)
  84. {
  85.     gsBgImage=sBgImage;
  86. }
  87.  
  88. function setBackgroundcolor(sBgColor)
  89. {
  90.     gsBgColor=sBgColor;
  91. }
  92.  
  93. function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
  94. {
  95.     var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
  96.     if(sType=="Normal") goFont=vFont;
  97.     else if(sType=="Hover") goHFont=vFont;
  98. }
  99.  
  100. function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
  101.  
  102. function setMargin(sMargin){gsMargin=sMargin;}
  103.  
  104. function setIndent(sIndent){gsIndent=sIndent;}
  105.  
  106. function setIcon(sType,sURL)
  107. {
  108.     if(sType=="BookOpen")
  109.         giBookOpen=sURL;
  110.     else if(sType=="BookClose")
  111.         giBookClose=sURL;
  112.     else if(sType=="Item")
  113.         giBookItem=sURL;
  114.     else if(sType=="RemoteItem")
  115.         giURLItem=sURL;
  116.     else if(sType=="NewBookClose")
  117.         giNewBookClose=sURL;
  118.     else if(sType=="NewBookOpen")
  119.         giNewBookOpen=sURL;
  120.     else if(sType=="NewItem")
  121.         giNewBookItem=sURL;
  122.     else if(sType=="NewRemoteItem")
  123.         giNewURLItem=sURL;        
  124. }
  125.  
  126. function bookItem(sTarget,sURL)
  127. {
  128.     if(sTarget)
  129.         this.sTarget=sTarget;
  130.     else
  131.         this.sTarget="bsscright";
  132.     this.sURL=sURL;
  133. }
  134.  
  135. function addBookItem(sBookId,sTarget,sURL)
  136. {
  137.     gBookItems[sBookId]=new bookItem(sTarget,sURL);        
  138. }
  139.  
  140. function tocChunk(sPPath,sDPath)
  141. {
  142.     this.sPPath=sPPath;
  143.     this.sDPath=sDPath;
  144.     this.nMI=-1;
  145.     this.aTocs=null;
  146. }
  147.  
  148. function addTocChunk(sPPath,sDPath)
  149. {
  150.     var oChunk=new tocChunk(sPPath,sDPath);
  151.     gaTocs[gaTocs.length]=oChunk;
  152.     return oChunk;
  153. }
  154.  
  155. function isHSLoad(nIdx)
  156. {
  157.     for(var i=0;i<gaHSLoad.length;i++)
  158.         if(gaHSLoad[i]==nIdx)
  159.             return true;
  160.     return false;
  161. }
  162.  
  163. function setHSLoad(nIdx)
  164. {
  165.     if(!isHSLoad(nIdx))
  166.     {
  167.         var len=gaHSLoad.length;
  168.         for(var i=0;i<len;i++)
  169.             if(gaHSLoad[i]==-1)
  170.             {
  171.                 gaHSLoad[i]=nIdx;
  172.                 return;
  173.             }
  174.         gaHSLoad[len]=nIdx;
  175.     }
  176. }
  177.  
  178. function setHSUnLoad(nIdx)
  179. {
  180.     if(isHSLoad(nIdx))
  181.     {
  182.         for(var i=0;i<gaHSLoad.length;i++)
  183.             if(gaHSLoad[i]==nIdx)
  184.             {
  185.                 gaHSLoad[i]=-1;
  186.                 return;
  187.             }
  188.     }
  189. }
  190.  
  191. function removeLoadingDiv()
  192. {
  193.     var eLoadingDiv=getElement(gsLoadingDivID);
  194.     if(eLoadingDiv)
  195.         removeThis(eLoadingDiv);
  196. }
  197.  
  198. function checkBookItem(nIdx)
  199. {
  200.     if(!gInSync)
  201.     {
  202.         var sBookId=getBookId(nIdx);
  203.         if(gBookItems[sBookId])
  204.         {
  205.             window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
  206.         }
  207.     }
  208. }
  209.  
  210. function insertBookItems(nIdx,num)
  211. {
  212.     checkBookItem(nIdx);
  213.     var sChildBookId=getCBId(nIdx);
  214.     var eChildDiv=getElement(sChildBookId);
  215.     if(eChildDiv){
  216.         if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
  217.             (eChildDiv.all&&eChildDiv.all.length==0)){
  218.             var sHTML=writeBookItems(nIdx,num);
  219.             eChildDiv.innerHTML=sHTML;
  220.             setTimeout("syncInit()",1);
  221.         }
  222.     }
  223.     ExpandIt(nIdx);
  224. }
  225.  
  226. function isBookEmpty(nIdx)
  227. {
  228.     var num=getItemContentsNum(nIdx);
  229.     if (num>0)
  230.     {
  231.         var nCIdx=0;
  232.         do {
  233.             nCIdx++;
  234.             var i=nIdx+nCIdx;
  235.             var nItemType=getItemType(i);
  236.             if(nItemType==1){
  237.                 if (!isBookEmpty(i))
  238.                     return false;
  239.             }
  240.             else if(nItemType==4){
  241.                 var    sSrc=getRefURL(i);
  242.                 var nProj=getProject(sSrc);
  243.                 if(nProj!=-1){
  244.                     sSrc=gaRoot[nProj].sToc;
  245.                     if(sSrc)
  246.                         return false;
  247.                 }
  248.             }
  249.             else if(nItemType==2||nItemType==16||nItemType==8)
  250.                 return false;
  251.         } while(nCIdx<num);
  252.     }
  253.     return true;
  254. }
  255.  
  256. function writeBook(nIdx)
  257. {
  258.     var sIcon=getBookImage(nIdx,true);
  259.     var sName=_textToHtml(getItemName(nIdx));
  260.     sIcon=_textToHtml_nonbsp(sIcon);
  261.     
  262.     var nType=getItemType(nIdx);
  263.     var bLocal=(nType==1);
  264.     var bLocalProject=(nType!=4);
  265.     
  266.     var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
  267.     if(bLocal)
  268.     {
  269.         if (!isBookEmpty(nIdx))
  270.         {
  271.             sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
  272.             if(gbSafari3)
  273.                 sHTML+="markBook("+nIdx+");insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
  274.             else
  275.                 sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
  276.             sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
  277.             sHTML+=" "+sName+"</a></nobr></p></div>";
  278.             var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
  279.             if(sURL!="")
  280.                 addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
  281.             sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
  282.         }
  283.         else
  284.             sHTML="";
  285.     }
  286.     else
  287.     {
  288.         sHTML+="stub></div>";
  289.         gbNeedFillStub=true;
  290.         setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
  291.     }
  292.     return sHTML;
  293. }
  294.  
  295. function checkFillStub()
  296. {
  297.     if(!gbLData)
  298.     {
  299.         if(gchunkRequestQueue.length()>0)
  300.         {
  301.             var cInfo=gchunkRequestQueue.deQueue();
  302.             if(cInfo)
  303.             {
  304.                 fillStub(cInfo.nIdx,cInfo.bLocal);
  305.                 return;
  306.             }
  307.         }
  308.     }
  309.     if(gbNeedFillStub)
  310.     {
  311.         gbNeedFillStub=false;
  312.         setTimeout("syncInit()",1);
  313.     }
  314. }
  315.  
  316. function fillStub(nIdx,bLocalProject)
  317. {
  318.     if(!gbLData)
  319.     {
  320.         gbLData=true;
  321.         var sObj=getElement(getPBId(nIdx));
  322.         if(sObj!=null)
  323.         {
  324.             tocExpandHelpSet(nIdx,bLocalProject);
  325.             gbNeedFillStub=false;
  326.             setTimeout("syncInit()",1);
  327.         }
  328.         else
  329.             setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
  330.     }
  331.     else
  332.         gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
  333. }
  334.  
  335. function getBookId(nIdx){return "B_"+nIdx;}
  336.  
  337. function getItemId(nIdx){return "I_"+nIdx;}
  338.  
  339. function markBook(nIdx)
  340. {
  341.     var obj=getElement(getItemId(nIdx));
  342.     if(obj==null)
  343.         obj=getElement(getBookId(nIdx));
  344.     if(gbNav6)
  345.     {
  346.         gobj=obj;
  347.         setTimeout("delayMarkObj();",1);
  348.     }
  349.     else
  350.         markObj(obj);
  351. }
  352.  
  353. function delayMarkObj()
  354. {
  355.     if(gobj)
  356.     {
  357.         markObj(gobj);
  358.         gobj=null;
  359.     }
  360. }
  361.  
  362. function markObj(obj)
  363. {
  364.     if(obj!=null)
  365.     {
  366.         HighLightElement(obj,gsABgColor,"transparent");
  367.         var sPath=calTocPath(obj);
  368.         if(gsCTPath!=sPath)
  369.             gsCTPath=sPath;
  370.     }
  371. }
  372.  
  373. function markItem(nIdx)
  374. {
  375.     var obj=getElement(getItemId(nIdx));
  376.     if(gbNav6)
  377.     {
  378.         gobj=obj;
  379.         setTimeout("delayMarkObj();",1);
  380.     }
  381.     else
  382.         markObj(getElement(getItemId(nIdx)));
  383. }
  384.  
  385. function calTocPath(obj)
  386. {
  387.     var sPath=getInnerText2(obj);
  388.     var pObj=getParentNode(obj);
  389.     do
  390.     {
  391.         while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
  392.         if(pObj!=null)
  393.         {
  394.             var nId=getIdByCBId(pObj.id);
  395.             var sObj=getElement(getPBId(nId));
  396.             if(sObj!=null)
  397.             {
  398.                 var objs=getItemsByBook(sObj);
  399.                 for(var i=0;i<objs.length;i++)
  400.                 {
  401.                     var sText=getInnerText2(objs[i]);
  402.                     if(sText.length!=0)
  403.                     {
  404.                         sPath=sText+gsPathSplit+sPath;
  405.                         break;
  406.                     }
  407.                 }
  408.             }
  409.             pObj=getParentNode(pObj);
  410.         }
  411.     }while(pObj!=null);
  412.     return sPath;
  413. }
  414.  
  415. function writeAnItem(nIdx)
  416. {
  417.     var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
  418.     var sIcon=getItemIcon(nIdx,0);
  419.     if(sIcon=="")
  420.     {
  421.         var nItemType=getItemType(nIdx);
  422.         if(nItemType&2)
  423.             sIcon=getItemImage(nIdx,false);
  424.         else
  425.             sIcon=getItemImage(nIdx,true);
  426.     }
  427.     sIcon=_textToHtml_nonbsp(sIcon);
  428.     var sName=_textToHtml(getItemName(nIdx));
  429.     var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus =\"markItem("+nIdx+");\" onclick=\"markItem("+nIdx+");\""
  430.     var sAltString="";
  431.     if(nItemType&2)
  432.         sAltString="Page";
  433.     else
  434.         sAltString="Remote Page";
  435.     if(sTarget!="")
  436.         sHTML+="target=\""+sTarget+"\" ";
  437.     sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\"> "+sName+"</a></nobr></p>";
  438.     return sHTML;
  439. }
  440.  
  441. function writeBookItems(nIdx,num)
  442. {
  443.     var sHTML="";
  444.     if(num>0){
  445.         var nCIdx=0;
  446.         do{
  447.             nCIdx++;
  448.             var i=nIdx+nCIdx;
  449.             var nItemType=getItemType(i);
  450.             if(nItemType==1||nItemType==4||nItemType==8){
  451.                 sHTML+=writeBook(i);    
  452.                 nCIdx+=getItemContentsNum(i);        
  453.             }
  454.             else if(nItemType==2||nItemType==16){
  455.                 sHTML+=writeAnItem(i);
  456.             }
  457.         }
  458.         while(nCIdx<num);
  459.     }
  460.     return sHTML;
  461. }
  462.  
  463. function tocExpandHelpSet(nIdx,bLocal)
  464. {
  465.     checkBookItem(nIdx);
  466.     removeLoadingDiv();
  467.     if(!isHSLoad(nIdx))
  468.     {
  469.         setHSLoad(nIdx);
  470.         var sSrc="";
  471.         if(bLocal){
  472.             var oChunk=getChunk(nIdx);
  473.             if(oChunk)
  474.             {
  475.                 goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
  476.                 sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
  477.             }
  478.         }
  479.         else{
  480.             sSrc=getRefURL(nIdx);
  481.             var nProj=getProject(sSrc);
  482.             if(nProj!=-1)
  483.             {
  484.                 sSrc=gaRoot[nProj].sToc;
  485.                 if(sSrc)
  486.                     goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
  487.                 else
  488.                     goChunk=null;
  489.             }
  490.             else
  491.                 goChunk=null;
  492.         }
  493.         if(goChunk)
  494.         {
  495.             PrepareLoading(nIdx);
  496.             gbToc=false;
  497.             loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
  498.         }
  499.         else
  500.         {
  501.             gbLData=false;
  502.             checkFillStub();
  503.         }
  504.     }
  505. }
  506.  
  507. function getProject(sSrc)
  508. {
  509.     for(var i=0;i<gaProj.length;i++)
  510.         if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
  511.             return i;
  512.     return -1;
  513. }
  514.  
  515. function getPath(sPath)
  516. {
  517.     if(sPath!="")
  518.     {
  519.         sPath=_replaceSlash(sPath);
  520.         var nPosFile=sPath.lastIndexOf("/");
  521.         sPath=sPath.substring(0,nPosFile+1);
  522.     }
  523.     return sPath;
  524. }
  525.  
  526. function isSamePath(sPath1,sPath2)
  527. {
  528.     return (sPath1.toLowerCase()==sPath2.toLowerCase());
  529. }
  530.  
  531. function PrepareLoading(nIdx)
  532. {
  533.     gnInsIdx=nIdx;
  534.     if(!gsTP)
  535.     {
  536.         var oObj=getElement(getPBId(gnInsIdx));
  537.         if(oObj)
  538.             oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
  539.     }
  540. }
  541.  
  542. function writeLoadingDiv(nIdx)
  543. {
  544.     return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
  545. }
  546.  
  547. function getItemName(nIdx)
  548. {
  549.     var oChunk=getChunk(nIdx);
  550.     if(oChunk)
  551.         return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
  552.     else
  553.         return null;
  554. }
  555.  
  556. function getItemContentsNum(nIdx)
  557. {
  558.     var oChunk=getChunk(nIdx);
  559.     if(oChunk)
  560.         return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
  561.     else
  562.         return null;
  563. }
  564.  
  565. function getItemType(nIdx)
  566. {
  567.     var oChunk=getChunk(nIdx);
  568.     if(oChunk)
  569.         return oChunk.aTocs[nIdx-oChunk.nMI].nType;
  570.     else
  571.         return 0;
  572. }
  573.  
  574. function getItemURL(nIdx)
  575. {
  576.     var oChunk=getChunk(nIdx);
  577.     if(oChunk)
  578.     {
  579.         var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
  580.         if(!(sPath==null||sPath==""))
  581.         {
  582.             return _getFullPath(oChunk.sPPath,sPath);
  583.         }
  584.     }
  585.     return "";
  586. }
  587.  
  588. function getRefURL(nIdx)
  589. {
  590.     var oChunk=getChunk(nIdx);
  591.     if(oChunk)
  592.     {
  593.         var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
  594.         if(!(sPath==null||sPath==""))
  595.         {
  596.             return _getFullPath(oChunk.sPPath,sPath)
  597.         }
  598.     }
  599.     return "";
  600. }
  601.  
  602. function getTopicTarget(nIdx)
  603. {
  604.     var oChunk=getChunk(nIdx);
  605.     if(oChunk)
  606.     {
  607.         if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
  608.             return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
  609.     }
  610.     return "";
  611. }
  612.  
  613. function getItemIcon(nIdx,nIconIdx)
  614. {
  615.     var oChunk=getChunk(nIdx);
  616.     if(oChunk)
  617.     {
  618.         if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
  619.         {
  620.             var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
  621.             var nIndex=sIconRef.indexOf(";");
  622.             while(nIconIdx-->0&&nIndex!=-1)
  623.             {
  624.                 sIconRef=sIconRef.substring(nIndex+1);
  625.                 nIndex=sIconRef.indexOf(";");
  626.             }
  627.             if(nIconIdx<0)
  628.             {
  629.                 if(nIndex!=-1)
  630.                     sIconRef=sIconRef.substring(0,nIndex);
  631.                 return _getFullPath(oChunk.sPPath,sIconRef)
  632.             }
  633.         }
  634.     }
  635.     return "";
  636. }
  637.  
  638. function TocWriteClassStyle()
  639. {
  640.     var sStyle="<STYLE TYPE='text/css'>\n";
  641.     if(gsBgImage)
  642.         sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
  643.     else
  644.         sStyle+="body {border-top:black 1px solid;}\n";
  645.     sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
  646.     sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
  647.     sStyle+=".parent {margin-left:0pt;}\n";
  648.     sStyle+=".stub {margin-left:0pt;display:none}\n";
  649.     sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
  650.     sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
  651.     sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
  652.     sStyle+="A:active {background-color:"+gsABgColor+";}\n";
  653.     sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
  654.     sStyle+="</STYLE>";
  655.     document.write(sStyle);
  656. }
  657.  
  658. function TocWriteFixedWidth(bBegin,nWidth)
  659. {
  660.     if((gbIE4)&&(gbMac)&&(!gbIE5)){
  661.         if(bBegin)
  662.             document.write("<table width="+nWidth+" border=0><tr><td>");
  663.         else
  664.             document.write("</td></tr></table>");
  665.     }
  666. }
  667.  
  668. function TocInitPage()
  669. {
  670.     var tempColl=getItemsByBook(document.body);
  671.     if(tempColl.length>0)
  672.         tempColl[0].focus();
  673. }
  674.  
  675. function getItemsFromObj(obj)
  676. {
  677.     var aAnchor=new Array();
  678.     var tempColl=getChildrenByTag(obj,"P");
  679.     if(tempColl&&tempColl.length>0)
  680.     {
  681.         var anobr=new Array();
  682.         for(var i=0;i<tempColl.length;i++)
  683.         {
  684.             var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
  685.             if(tempNobr&&tempNobr.length>0)
  686.                 for(var j=0;j<tempNobr.length;j++)
  687.                     anobr[anobr.length]=tempNobr[j];
  688.         }
  689.         for(var s=0;s<anobr.length;s++)
  690.         {
  691.             var tempAnchor=getChildrenByTag(anobr[s],"A");
  692.             if(tempAnchor&&tempAnchor.length>0)
  693.                 for(var u=0;u<tempAnchor.length;u++)
  694.                     aAnchor[aAnchor.length]=tempAnchor[u];
  695.         }
  696.     }
  697.     return aAnchor;
  698. }
  699.  
  700. function getItemsByBook(obj)
  701. {
  702.     var aAnchor=new Array();
  703.     var aTAnchor=getItemsFromObj(obj);
  704.     for(var i=0;i<aTAnchor.length;i++)
  705.         aAnchor[aAnchor.length]=aTAnchor[i];
  706.     var tempBook=getChildrenByTag(obj,"DIV");
  707.     if(tempBook&&tempBook.length>0)
  708.         for(var j=0;j<tempBook.length;j++)
  709.         {
  710.             var aTAnchorDiv=getItemsFromObj(tempBook[j]);
  711.             for(var s=0;s<aTAnchorDiv.length;s++)
  712.                 aAnchor[aAnchor.length]=aTAnchorDiv[s];
  713.         }
  714.     return aAnchor;
  715. }
  716.  
  717. function ExpandIt(nId)
  718. {
  719.     if(!gsTP)
  720.         ExpandIt2(nId,false);
  721. }
  722.  
  723. function ExpandIt2(nId,bForceOpen)
  724. {
  725.     var oC=TocExpand(nId,true,bForceOpen);
  726.     var nNewScroll=document.body.scrollTop;
  727.     if(oC.style.display=="block"){
  728.         var nTop=oC.offsetTop;
  729.         var nBottom=nTop+oC.offsetHeight;
  730.         if(document.body.scrollTop+getClientHeight()<nBottom){
  731.             nNewScroll=nBottom-getClientHeight();
  732.         }
  733.         if(nBottom-nTop>getClientHeight()){
  734.             nNewScroll=nTop-20;
  735.         }
  736.     }
  737.     document.body.scrollTop=nNewScroll;
  738. }
  739.  
  740. function TocExpand(nId,bChangeImg,bForceOpen)
  741. {
  742.     var oDiv=getElement(getCBId(nId));
  743.     if(oDiv==null) return null;
  744.  
  745.     var whichIm=document.images[getBId(nId)];
  746.     if((oDiv.style.display!="block")||bForceOpen){
  747.         oDiv.style.display="block";
  748.         if(bChangeImg){
  749.             var sPath=getPath(whichIm.src);
  750.             sPath=_getFullPath(sPath,getBookImage(nId,false));
  751.             whichIm.src=sPath;        
  752.         }
  753.     }else{
  754.         oDiv.style.display="none";
  755.         if(bChangeImg){
  756.             var sPath=getPath(whichIm.src);
  757.             sPath=_getFullPath(sPath,getBookImage(nId,true));
  758.             whichIm.src=sPath;
  759.         }
  760.         if(gbMac&&gbIE5){
  761.             this.parent.document.getElementById("tocIFrame").style.width="101%";
  762.             this.parent.document.getElementById("tocIFrame").style.width="100%";
  763.         }
  764.     }
  765.     return oDiv;
  766. }
  767.  
  768. function getChunkId(n)
  769. {
  770.     var nCan=-1;
  771.     for(var i=0;i<gaTocs.length;i++)
  772.         if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
  773.         {
  774.             if(nCan==-1)
  775.                 nCan=i;
  776.             else
  777.                 if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
  778.                     nCan=i;
  779.         }
  780.     if(nCan!=-1)
  781.         return nCan;
  782.     else
  783.         return -1;
  784. }
  785.  
  786. function getChunk(n)
  787. {
  788.     if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
  789.         gaTocs[gnCC+1].nMI>n))
  790.     {    
  791.         return gaTocs[gnCC];
  792.     }
  793.     else{
  794.         gnCC=getChunkId(n);
  795.         if(gnCC!=-1)
  796.             return gaTocs[gnCC];
  797.         else
  798.             return null;
  799.     }
  800. }
  801.  
  802. function getBookImage(nIdx,bClosed)
  803. {
  804.     var nIdx=bClosed?0:1;
  805.     var sIcon=getItemIcon(nIdx,nIdx);
  806.     if(sIcon=="")
  807.         if(bClosed)
  808.             sIcon=giBookClose;
  809.         else
  810.             sIcon=giBookOpen;
  811.     return _getFullPath(gaProj[0].sPPath,sIcon);
  812. }
  813.  
  814. function getItemImage(nIdx,bRemote)
  815. {
  816.     var sIcon=getItemIcon(nIdx,0);
  817.     if(sIcon=="")
  818.         if(bRemote)
  819.             sIcon=giURLItem;
  820.         else
  821.             sIcon=giBookItem;
  822.     return _getFullPath(gaProj[0].sPPath,sIcon);
  823. }
  824.  
  825. function getInnerText2(obj)
  826. {
  827.     var sText=getInnerText(obj);
  828.     if(sText.length>0&&!gbOpera7)
  829.         sText=sText.substring(1);
  830.     return sText;
  831. }
  832.  
  833. function expandToc(oObj,sRest,aIdList)
  834. {
  835.     var len=aIdList.length;
  836.     var nPos=sRest.indexOf(gsPathSplit);
  837.     if(nPos!=-1)
  838.     {
  839.         sPart=sRest.substring(0,nPos);
  840.         sRest=sRest.substring(nPos+1);
  841.     }
  842.     else
  843.     {
  844.         sPart=sRest;
  845.         var aTagAs=getItemsByBook(oObj);
  846.         for(var s=0;s<aTagAs.length;s++)
  847.         {
  848.             var sText=getInnerText2(aTagAs[s]);
  849.             if(sText==sPart)
  850.             {
  851.                 aIdList[len]=aTagAs[s];
  852.                 return 1;
  853.             }
  854.         }
  855.         return 0;
  856.     }
  857.         
  858.     var aChildren=getChildrenByTag(oObj,"DIV");
  859.     for(var i=0;i<aChildren.length;i++)
  860.     {
  861.         var sPId=aChildren[i].id;
  862.         if(!isPBId(sPId))
  863.             continue;
  864.         var sText=getInnerText2(aChildren[i]);
  865.         if(sText!=sPart)
  866.             continue;
  867.         aIdList[len]=getIdByPBId(sPId);
  868.         var sCId=getCBId(aIdList[len]);
  869.         var oCObj=getElement(sCId);
  870.         if(oCObj)
  871.         {
  872.             if(oCObj.innerHTML=="")
  873.             {
  874.                 var obj=getItemsByBook(aChildren[i]);
  875.                 if(obj.length>0)
  876.                 {
  877.                     if(gbNav6)
  878.                     {
  879.                         var sCommand=obj[0].getAttribute("onClick");
  880.                         var nCommand=sCommand.indexOf(";");
  881.                         sCommand=sCommand.substring(0,nCommand);
  882.                         setTimeout(sCommand,1);
  883.                     }
  884.                     else
  885.                         obj[0].click();
  886.                 }
  887.                 return -1;
  888.             }
  889.             var nRet=expandToc(oCObj,sRest,aIdList);
  890.             if(nRet)
  891.                 return nRet;
  892.         }
  893.     }
  894.     aIdList.length=len;
  895.     return 0;
  896. }
  897.  
  898. function getIdByPBId(sPId)
  899. {
  900.     return parseInt(sPId.substring(2,sPId.length-1));
  901. }
  902.  
  903. function getIdByCBId(sCId)
  904. {
  905.     return parseInt(sCId.substring(2,sCId.length-1));
  906. }
  907.  
  908. function isPBId(sId)
  909. {
  910.     return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
  911. }
  912.  
  913. function isCBId(sId)
  914. {
  915.     return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
  916. }
  917.  
  918. function getBId(nIdx)
  919. {
  920.     return "B_"+nIdx;
  921. }
  922.  
  923. function getPBId(nIdx)
  924. {
  925.     return getBId(nIdx)+"P";
  926. }
  927.  
  928. function getCBId(nIdx)
  929. {
  930.     return getBId(nIdx)+"C";
  931. }
  932.  
  933. function getClosestTocPath(aPaths)
  934. {
  935.     var nMaxSimilarity=0;
  936.     var nThatIndex=-1;
  937.     var sPath=null;
  938.     if(aPaths.length==0) return sPath;
  939.     for(var i=0;i<aPaths.length;i++)
  940.     {
  941.         var nSimilarity=comparePath(gsCTPath,aPaths[i]);
  942.         if(nSimilarity>nMaxSimilarity)
  943.         {
  944.             nMaxSimilarity=nSimilarity;
  945.             nThatIndex=i;
  946.         }
  947.     }
  948.     if(nThatIndex!=-1)
  949.         sPath=aPaths[nThatIndex];
  950.     else
  951.         sPath=aPaths[0];
  952.     return sPath;
  953. }
  954.  
  955. function comparePath(sPath1,sPath2)
  956. {
  957.     var nMaxSimilarity=0;
  958.     var nStartPos1=0;
  959.     var nPos1=-1;
  960.     var nStartPos2=0;
  961.     var nPos2=-1;
  962.     do{
  963.         var sCheck1=null;
  964.         var sCheck2=null;
  965.         nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
  966.         if(nPos1!=-1)
  967.         {
  968.             sCheck1=sPath1.substring(nStartPos1,nPos1);
  969.             nStartPos1=nPos1+1;
  970.         }
  971.         else
  972.         {
  973.             sCheck1=sPath1.substring(nStartPos1);
  974.             nStartPos1=-1;
  975.         }
  976.         nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
  977.         if(nPos1!=-1)
  978.         {
  979.             sCheck2=sPath2.substring(nStartPos2,nPos2);
  980.             nStartPos2=nPos2+1;
  981.         }
  982.         else
  983.         {
  984.             sCheck2=sPath2.substring(nStartPos2);
  985.             nStartPos2=-1;
  986.         }
  987.         if(sCheck1==sCheck2)
  988.             nMaxSimilarity++;
  989.         else
  990.             break;
  991.     }while(nStartPos1!=-1&&nStartPos2!=-1);
  992.     return nMaxSimilarity;
  993. }
  994.  
  995. function getTocPaths(oTopicParam)
  996. {
  997.     var aRelTocPaths=oTopicParam.aPaths;
  998.     var aPaths=new Array();
  999.     for(var i=0;i<gaProj.length;i++)
  1000.         if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
  1001.         {
  1002.             for(var j=0;j<aRelTocPaths.length;j++)
  1003.                 for (var k=0;k<gaRoot[i].aRPath.length;k++)
  1004.                 {
  1005.                     var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
  1006.                     aPaths[aPaths.length]=sPath.substring(1);
  1007.                 }
  1008.             break;
  1009.         }
  1010.     return aPaths;
  1011. }
  1012.  
  1013. function syncInit()
  1014. {
  1015.     if(gsTP&&!gbNeedFillStub)
  1016.     {
  1017.         gInSync=true;
  1018.         var obj=document.body;
  1019.         var aIdList=new Array();
  1020.         var nRet=expandToc(obj,gsTP,aIdList);
  1021.         if(nRet!=-1)
  1022.         {
  1023.             if(nRet==1)
  1024.             {
  1025.                 if(aIdList.length)
  1026.                     for(var i=0;i<aIdList.length-1;i++)
  1027.                         ExpandIt2(aIdList[i],true);
  1028.                 gsCTPath=gsTP;
  1029.                 HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
  1030.                 aIdList[aIdList.length-1].focus();
  1031.             }
  1032.             var aPaths=gaBTPs;
  1033.             gsTP=null;
  1034.             gaBTPs=null;
  1035.             if(aPaths!=null)
  1036.             {
  1037.                 var sPath=getClosestTocPath(aPaths);
  1038.                 if(sPath!=null)
  1039.                 {    
  1040.                     gsTP=sPath;        
  1041.                     setTimeout("syncInit()",1);
  1042.                 }
  1043.             }
  1044.         }
  1045.         gInSync=false;
  1046.     }
  1047. }
  1048.  
  1049. function loadToc()
  1050. {
  1051.     if(!gbLoadToc)
  1052.     {
  1053.         var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
  1054.         if(SendMessage(oResMsg)&&oResMsg.oParam)
  1055.         {
  1056.             gbLoadToc=true;
  1057.             var oProj=oResMsg.oParam;
  1058.             gaProj=oProj.aProj;
  1059.             gbXML=oProj.bXML;
  1060.             load1B1();
  1061.         }
  1062.     }
  1063. }
  1064.  
  1065. function load1B1()
  1066. {
  1067.     if(gnLT+1<gaProj.length)
  1068.         for(var i=gnLT+1;i<gaProj.length;i++)
  1069.             if(gaProj[i].sToc)
  1070.             {
  1071.                 gbToc=true;
  1072.                 gnLT=i;
  1073.                 setTimeout("loadTocInfo()",1);
  1074.                 return true;
  1075.             }
  1076.     return false;
  1077. }
  1078.  
  1079. function loadTocInfo()
  1080. {
  1081.     loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
  1082. }
  1083.  
  1084. function loadData2(sFile)
  1085. {
  1086.     if(gbXML)
  1087.         loadDataXML(sFile);
  1088.     else
  1089.         loadData(sFile);
  1090. }
  1091.  
  1092. function projReady(sRoot,aProj)
  1093. {
  1094.     if(gaRoot.length<=gnLT||!gaRoot[gnLT])
  1095.         gaRoot[gnLT]=new Object();
  1096.     gaRoot[gnLT].sToc=sRoot;
  1097.     
  1098.     if(gnLT==0)
  1099.     {
  1100.         gaRoot[gnLT].aRPath=new Array();
  1101.         gaRoot[gnLT].aRPath[0]=gsPathSplit;
  1102.     }
  1103.  
  1104.     updatePTPath(gnLT,aProj);
  1105.  
  1106.     if(!((gnLT+1<gaProj.length)&&load1B1()))
  1107.     {
  1108.         gbReady=true;
  1109.         if(gbIE4)
  1110.             setTimeout("loadImages();",1);
  1111.         else
  1112.             setTimeout("loadTData();",1);
  1113.     }
  1114. }
  1115.  
  1116. function loadTData()
  1117. {
  1118.     if(gaProj[0].sToc!="")
  1119.     {
  1120.         gbLData=true;
  1121.         goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
  1122.         gbToc=false;
  1123.         loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
  1124.     }
  1125. }
  1126.  
  1127. function updatePTPath(n,aProj)
  1128. {
  1129.     if(aProj)
  1130.         for(var i=0;i<aProj.length;i++)
  1131.         {
  1132.             var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
  1133.             for(var j=0;j<gaProj.length;j++)
  1134.                 if(isSamePath(sFullPath,gaProj[j].sPPath))
  1135.                 {
  1136.                     if(gaRoot.length<=j||!gaRoot[j])
  1137.                         gaRoot[j]=new Object();
  1138.                     if(!gaRoot[j].aRPath)
  1139.                         gaRoot[j].aRPath=new Array();
  1140.  
  1141.                     if(gaRoot[n].aRPath)
  1142.                         for(var k=0;k<gaRoot[n].aRPath.length;k++)
  1143.                         {
  1144.                             var bDup=false;
  1145.                             var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
  1146.                             for(var l=0;l<gaRoot[j].aRPath.length;l++)
  1147.                                 if(gaRoot[j].aRPath[l]==sTFPath)
  1148.                                 {
  1149.                                     bDup=true;
  1150.                                     break;
  1151.                                 }
  1152.                             if(!bDup)
  1153.                                 gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
  1154.                         }
  1155.                     else
  1156.                         gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
  1157.                     break;
  1158.                 }
  1159.         }
  1160. }
  1161.  
  1162. function onLoadXMLError()
  1163. {
  1164.     if(gbToc)
  1165.     {
  1166.         var sRoot="";
  1167.         var aRProj=new Array();
  1168.         projReady(sRoot,aRProj);
  1169.     }
  1170.     else
  1171.     {
  1172.         var aToc=new Array();
  1173.         putData(aToc)
  1174.     }
  1175. }
  1176.  
  1177. function putDataXML(xmlDoc,sDocPath)
  1178. {
  1179.     if(gbToc)
  1180.     {
  1181.         var tocNode=xmlDoc.getElementsByTagName("toc")[0];
  1182.         if(tocNode)
  1183.         {
  1184.             var sRoot=tocNode.getAttribute("root");
  1185.             var rmtProject=tocNode.getElementsByTagName("project");
  1186.             var aRProj=new Array();
  1187.             if(rmtProject.length>0)
  1188.             {
  1189.                 for(var i=0;i<rmtProject.length;i++)
  1190.                 {
  1191.                     aRProj[i]=new Object();
  1192.                     var sURL=rmtProject[i].getAttribute("url");
  1193.                     if(sURL)
  1194.                     {
  1195.                         if(sURL.lastIndexOf("/")!=sURL.length-1)
  1196.                             sURL+="/";                        
  1197.                     }
  1198.                     aRProj[i].sPPath=sURL;
  1199.                     aRProj[i].sRPath = "";
  1200.                     var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
  1201.                     if (oSubPath)
  1202.                     {
  1203.                         while (oSubPath)
  1204.                         {
  1205.                             aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
  1206.                             oSubPath = oSubPath.getElementsByTagName("subpath")[0];
  1207.                         }
  1208.                     }
  1209.                     else
  1210.                         aRProj[i].sRPath=rmtProject[i].getAttribute("path");
  1211.                 }
  1212.             }
  1213.             projReady(sRoot,aRProj);
  1214.         }
  1215.     }
  1216.     else
  1217.     {
  1218.         var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
  1219.         if(chunkNode)
  1220.         {
  1221.             var aToc=new Array();
  1222.             processBook(chunkNode,aToc);
  1223.             putData(aToc);
  1224.         }
  1225.     }
  1226. }
  1227.  
  1228. function processBook(node,aToc)
  1229. {
  1230.     var i=0;
  1231.     var entry=null;
  1232.     var prevEntry=null;
  1233.     var oChild=node.firstChild;
  1234.     do{
  1235.         if(oChild)
  1236.         {
  1237.             if(oChild.nodeName.indexOf("#")!=0)
  1238.             {
  1239.                 var sName=oChild.getAttribute("name");
  1240.                 var sURL=oChild.getAttribute("url");
  1241.                 var sRef=oChild.getAttribute("ref");
  1242.                 var sTarget=oChild.getAttribute("target");
  1243.                 var sIcons=oChild.getAttribute("images");
  1244.                 var item=new Object();
  1245.                 item.sItemName=sName;
  1246.                 if(sTarget)
  1247.                     item.sTarget=sTarget;
  1248.                 if(sIcons)
  1249.                     item.sIconRef=sIcons;
  1250.                 if(sURL==null) sURL="";
  1251.  
  1252.                 item.sItemURL=sURL;
  1253.                 
  1254.                 if(oChild.nodeName=="book")
  1255.                 {
  1256.                     item.nType=1;
  1257.                     aToc[aToc.length]=item;
  1258.                     var nCurrPos=aToc.length;
  1259.                     processBook(oChild,aToc);
  1260.                     item.nContents=aToc.length-nCurrPos;
  1261.                 }
  1262.                 else if(oChild.nodeName=="item")
  1263.                 {
  1264.                     item.nType=2;
  1265.                     item.nContents=0;
  1266.                     aToc[aToc.length]=item;
  1267.                 }
  1268.                 else if(oChild.nodeName=="remoteitem")
  1269.                 {
  1270.                     item.nType=16;
  1271.                     item.nContents=0;
  1272.                     aToc[aToc.length]=item;
  1273.                 }
  1274.                 else if(oChild.nodeName=="project")
  1275.                 {
  1276.                     if(sRef)
  1277.                     {
  1278.                         if(sRef.lastIndexOf("/")!=sRef.length-1)
  1279.                             sRef+="/";                        
  1280.                     }
  1281.                     item.nType=4;
  1282.                     item.sRefURL=sRef;
  1283.                     item.nContents=0;
  1284.                     aToc[aToc.length]=item;
  1285.                 }
  1286.                 else if(oChild.nodeName=="chunk")
  1287.                 {
  1288.                     item.nType=8;
  1289.                     item.sRefURL=sRef;
  1290.                     item.nContents=0;
  1291.                     aToc[aToc.length]=item;
  1292.                 }
  1293.             }
  1294.         }
  1295.         else
  1296.             break;
  1297.         oChild=oChild.nextSibling;
  1298.     }while(true);
  1299. }
  1300.  
  1301. function putData(aTocs)
  1302. {
  1303.     gaTocsNs61Fix=aTocs;
  1304.     setTimeout("realPutData();",1);
  1305. }
  1306.  
  1307. function realPutData()
  1308. {
  1309.     removeLoadingDiv();
  1310.     var aTocs=gaTocsNs61Fix;
  1311.     if(!aTocs) return;
  1312.     if(goChunk)
  1313.     {
  1314.         var n=gnMinIdx;
  1315.         goChunk.nMI=gnMinIdx;
  1316.         goChunk.aTocs=aTocs;
  1317.         gnMinIdx+=aTocs.length;
  1318.         if(gnInsIdx!=-1)
  1319.         {
  1320.             var oObj=getElement(getPBId(gnInsIdx));
  1321.             if(oObj)
  1322.             {
  1323.                 oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
  1324.                 setTimeout("syncInit()",1);
  1325.             }
  1326.         }
  1327.         else{
  1328.             document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
  1329.             var oParam=new Object();
  1330.             oParam.oTocInfo=null;
  1331.             var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
  1332.             if(SendMessage(oMsg))
  1333.             {
  1334.                 if(oMsg.oParam.oTocInfo)
  1335.                     syncWithPaths(oMsg.oParam.oTocInfo);
  1336.             }
  1337.         }    
  1338.     }
  1339.     gbLData=false;
  1340.     checkFillStub();
  1341. }
  1342.  
  1343. function syncWithPaths(oTopicParam)
  1344. {
  1345.     var aPaths=getTocPaths(oTopicParam);
  1346.     if(gsTP)
  1347.         gaBTPs=aPaths;
  1348.     else{
  1349.         var sPath=getClosestTocPath(aPaths);
  1350.         if(sPath!=null)
  1351.         {
  1352.             gsTP=sPath;
  1353.             setTimeout("syncInit()",1);
  1354.         }
  1355.     }
  1356. }
  1357.  
  1358. function window_OnLoad()
  1359. {
  1360.     if(gsBgImage&&gsBgImage.length>0)
  1361.     {
  1362.         document.body.background=gsBgImage;
  1363.     }
  1364.     if(gsBgColor&&gsBgColor.length>0)
  1365.     {
  1366.         document.body.bgColor=gsBgColor;
  1367.     }
  1368.     loadToc();
  1369.     var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
  1370.     SendMessage(oMsg);
  1371. }
  1372.  
  1373. function loadImages()
  1374. {
  1375.     if(giBookClose)
  1376.     {
  1377.         gaImgs[gnImages]=giBookClose;
  1378.         gnImages++;
  1379.     }        
  1380.     if(giBookOpen)
  1381.     {
  1382.         gaImgs[gnImages]=giBookOpen;
  1383.         gnImages++;
  1384.     }        
  1385.     if(giBookItem)
  1386.     {
  1387.         gaImgs[gnImages]=giBookItem;
  1388.         gnImages++;
  1389.     }        
  1390.     if(giURLItem)
  1391.     {
  1392.         gaImgs[gnImages]=giURLItem;
  1393.         gnImages++;
  1394.     }        
  1395.     if(giNewBookClose)
  1396.     {
  1397.         gaImgs[gnImages]=giNewBookClose;
  1398.         gnImages++;
  1399.     }        
  1400.     if(giNewBookOpen)
  1401.     {
  1402.         gaImgs[gnImages]=giNewBookOpen;
  1403.         gnImages++;
  1404.     }        
  1405.     if(giNewBookItem)
  1406.     {
  1407.         gaImgs[gnImages]=giNewBookItem;
  1408.         gnImages++;
  1409.     }        
  1410.     if(giNewURLItem)
  1411.     {
  1412.         gaImgs[gnImages]=giNewURLItem;
  1413.         gnImages++;
  1414.     }
  1415.     if(gnImages>0)
  1416.     {
  1417.         setTimeout("loadDataAfter();",1000);
  1418.         loadImage(gaImgs[0]);
  1419.     }
  1420.     else
  1421.         loadDataAfter();
  1422. }
  1423.  
  1424. function loadImage(sURL)
  1425. {
  1426.     var oImg=new Image();
  1427.     oImg.onload=checkImageLoading;
  1428.     oImg.onerror=errorImageLoading;
  1429.     oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
  1430. }
  1431.  
  1432. function loadDataAfter()
  1433. {
  1434.     if(!gbLoadData)
  1435.     {
  1436.         gbLoadData=true;
  1437.         loadTData();
  1438.     }
  1439. }
  1440.  
  1441. function errorImageLoading()
  1442. {
  1443.     gnLoadedImages++;
  1444.     if(gnImages==gnLoadedImages)
  1445.         loadDataAfter();
  1446.     else
  1447.         loadImage(gaImgs[gnLoadedImages]);    
  1448. }
  1449.  
  1450. function checkImageLoading()
  1451. {
  1452.     gnLoadedImages++;
  1453.     if(gnImages==gnLoadedImages)
  1454.         loadDataAfter();
  1455.     else
  1456.         loadImage(gaImgs[gnLoadedImages]);    
  1457. }
  1458.  
  1459. function window_unload()
  1460. {
  1461.     UnRegisterListener2(this,WH_MSG_PROJECTREADY);
  1462.     UnRegisterListener2(this,WH_MSG_SYNCTOC);
  1463.     UnRegisterListener2(this,WH_MSG_SHOWTOC);
  1464. }
  1465.  
  1466. function onSendMessage(oMsg)
  1467. {
  1468.     if(oMsg)
  1469.     {
  1470.         var nMsgId=oMsg.nMessageId;
  1471.         if(nMsgId==WH_MSG_PROJECTREADY)
  1472.         {
  1473.             loadToc();
  1474.         }
  1475.         else if(nMsgId==WH_MSG_SYNCTOC)
  1476.         {
  1477.             if(gbReady)
  1478.             {
  1479.                 syncWithPaths(oMsg.oParam);
  1480.             }
  1481.         }
  1482.         else if(nMsgId==WH_MSG_SHOWTOC)
  1483.         {
  1484.             if(!gbNav6)
  1485.                 document.body.focus();
  1486.         }
  1487.     }
  1488.     return true;
  1489. }
  1490.  
  1491. if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
  1492. {
  1493.     RegisterListener2(this,WH_MSG_PROJECTREADY);
  1494.     RegisterListener2(this,WH_MSG_SYNCTOC);
  1495.     RegisterListener2(this,WH_MSG_SHOWTOC);
  1496.     goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
  1497.     goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
  1498.  
  1499.     window.onload=window_OnLoad;
  1500.     window.onbeforeunload=window_BUnload;
  1501.     window.onunload=window_unload;
  1502.     gbWhTHost=true;
  1503. }
  1504. else
  1505.     document.location.reload();