Salome HOME
Merging with WPdev
[modules/smesh.git] / doc / salome / gui / SMESH / whthost.js
index 54ddc9aacf72aa8b858677bb56a2074f645ae4e0..1a864bbcdbfb4f90ac62e5131af577905020b719 100755 (executable)
-//     WebHelp 5.10.007\r
-var gaHSLoad=new Array();\r
-var gnMinIdx=0;\r
-var gnInsIdx=-1;\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading, click here to cancel...";\r
-var gaProj=null;\r
-var gaTocs=new Array();\r
-var goChunk=null;\r
-var gbReady=false;\r
-var gbToc=false;\r
-var gbXML=false;\r
-var gaRoot=new Array();\r
-var gnCC=-1;\r
-var gsTP="";\r
-var gaBTPs="";\r
-var gsCTPath="";\r
-var gnLT=-1;\r
-var gsPathSplit="\n";\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goFont=null;\r
-var goHFont=null;\r
-\r
-var gsMargin="0pt";\r
-var gsIndent="15pt";\r
-var gsABgColor="#cccccc";\r
-\r
-var giBookClose="";\r
-var giBookOpen="";\r
-var giBookItem="";\r
-var giURLItem="";\r
-var giNewBookClose="";\r
-var giNewBookOpen="";\r
-var giNewBookItem="";\r
-var giNewURLItem="";\r
-var gnImages=0;\r
-var gnLoadedImages=0;\r
-var gaImgs=new Array();\r
-var gbLoadData=false;\r
-var gobj=null;\r
-var gaTocsNs61Fix=null;\r
-var gbWhTHost=false;\r
-var gBookItems=new Array();\r
-var gInSync=false;\r
-var gbLData=false;\r
-var gbNeedFillStub=false;\r
-var gbLoadToc=false;\r
-\r
-function chunkInfoQueue()\r
-{\r
-       this.aContent=new Array();\r
-       this.inQueue=function(cInfo)\r
-       {\r
-               this.aContent[this.aContent.length]=cInfo;\r
-       }\r
-       this.deQueue=function()\r
-       {\r
-               var cInfo=null;\r
-               if(this.aContent.length>0)\r
-               {\r
-                       cInfo=this.aContent[0];\r
-                       for(var i=1;i<this.aContent.length;i++)\r
-                               this.aContent[i-1]=this.aContent[i];\r
-                       this.aContent.length--;\r
-               }\r
-               return cInfo;\r
-       }\r
-       this.length=function()\r
-       {\r
-               return this.aContent.length;\r
-       }\r
-}\r
-\r
-var gchunkRequestQueue=new chunkInfoQueue();\r
-\r
-function chunkInfo(nIdx, bLocal)\r
-{\r
-       this.nIdx=nIdx;\r
-       this.bLocal=bLocal;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal") goFont=vFont;\r
-       else if(sType=="Hover") goHFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}\r
-\r
-function setMargin(sMargin){gsMargin=sMargin;}\r
-\r
-function setIndent(sIndent){gsIndent=sIndent;}\r
-\r
-function setIcon(sType,sURL)\r
-{\r
-       if(sType=="BookOpen")\r
-               giBookOpen=sURL;\r
-       else if(sType=="BookClose")\r
-               giBookClose=sURL;\r
-       else if(sType=="Item")\r
-               giBookItem=sURL;\r
-       else if(sType=="RemoteItem")\r
-               giURLItem=sURL;\r
-       else if(sType=="NewBookClose")\r
-               giNewBookClose=sURL;\r
-       else if(sType=="NewBookOpen")\r
-               giNewBookOpen=sURL;\r
-       else if(sType=="NewItem")\r
-               giNewBookItem=sURL;\r
-       else if(sType=="NewRemoteItem")\r
-               giNewURLItem=sURL;              \r
-}\r
-\r
-function bookItem(sTarget,sURL)\r
-{\r
-       if(sTarget)\r
-               this.sTarget=sTarget;\r
-       else\r
-               this.sTarget="bsscright";\r
-       this.sURL=sURL;\r
-}\r
-\r
-function addBookItem(sBookId,sTarget,sURL)\r
-{\r
-       gBookItems[sBookId]=new bookItem(sTarget,sURL);         \r
-}\r
-\r
-function tocChunk(sPPath,sDPath)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.nMI=-1;\r
-       this.aTocs=null;\r
-}\r
-\r
-function addTocChunk(sPPath,sDPath)\r
-{\r
-       var oChunk=new tocChunk(sPPath,sDPath);\r
-       gaTocs[gaTocs.length]=oChunk;\r
-       return oChunk;\r
-}\r
-\r
-function isHSLoad(nIdx)\r
-{\r
-       for(var i=0;i<gaHSLoad.length;i++)\r
-               if(gaHSLoad[i]==nIdx)\r
-                       return true;\r
-       return false;\r
-}\r
-\r
-function setHSLoad(nIdx)\r
-{\r
-       if(!isHSLoad(nIdx))\r
-       {\r
-               var len=gaHSLoad.length;\r
-               for(var i=0;i<len;i++)\r
-                       if(gaHSLoad[i]==-1)\r
-                       {\r
-                               gaHSLoad[i]=nIdx;\r
-                               return;\r
-                       }\r
-               gaHSLoad[len]=nIdx;\r
-       }\r
-}\r
-\r
-function setHSUnLoad(nIdx)\r
-{\r
-       if(isHSLoad(nIdx))\r
-       {\r
-               for(var i=0;i<gaHSLoad.length;i++)\r
-                       if(gaHSLoad[i]==nIdx)\r
-                       {\r
-                               gaHSLoad[i]=-1;\r
-                               return;\r
-                       }\r
-       }\r
-}\r
-\r
-function removeLoadingDiv()\r
-{\r
-       var eLoadingDiv=getElement(gsLoadingDivID);\r
-       if(eLoadingDiv)\r
-               removeThis(eLoadingDiv);\r
-}\r
-\r
-function checkBookItem(nIdx)\r
-{\r
-       if(!gInSync)\r
-       {\r
-               var sBookId=getBookId(nIdx);\r
-               if(gBookItems[sBookId])\r
-               {\r
-                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);\r
-               }\r
-       }\r
-}\r
-\r
-function insertBookItems(nIdx,num)\r
-{\r
-       checkBookItem(nIdx);\r
-       var sChildBookId=getCBId(nIdx);\r
-       var eChildDiv=getElement(sChildBookId);\r
-       if(eChildDiv){\r
-               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||\r
-                       (eChildDiv.all&&eChildDiv.all.length==0)){\r
-                       var sHTML=writeBookItems(nIdx,num);\r
-                       eChildDiv.innerHTML=sHTML;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-       }\r
-       ExpandIt(nIdx);\r
-}\r
-\r
-function isBookEmpty(nIdx)\r
-{\r
-       var num=getItemContentsNum(nIdx);\r
-       if (num>0)\r
-       {\r
-               var nCIdx=0;\r
-               do {\r
-                       nCIdx++;\r
-                       var i=nIdx+nCIdx;\r
-                       var nItemType=getItemType(i);\r
-                       if(nItemType==1){\r
-                               if (!isBookEmpty(i))\r
-                                       return false;\r
-                       }\r
-                       else if(nItemType==4){\r
-                               var     sSrc=getRefURL(i);\r
-                               var nProj=getProject(sSrc);\r
-                               if(nProj!=-1){\r
-                                       sSrc=gaRoot[nProj].sToc;\r
-                                       if(sSrc)\r
-                                               return false;\r
-                               }\r
-                       }\r
-                       else if(nItemType==2||nItemType==16||nItemType==8)\r
-                               return false;\r
-               } while(nCIdx<num);\r
-       }\r
-       return true;\r
-}\r
-\r
-function writeBook(nIdx)\r
-{\r
-       var sIcon=getBookImage(nIdx,true);\r
-       var sName=_textToHtml(getItemName(nIdx));\r
-       sIcon=_textToHtml_nonbsp(sIcon);\r
-       \r
-       var nType=getItemType(nIdx);\r
-       var bLocal=(nType==1);\r
-       var bLocalProject=(nType!=4);\r
-       \r
-       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";\r
-       if(bLocal)\r
-       {\r
-               if (!isBookEmpty(nIdx))\r
-               {\r
-                       sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";\r
-                       sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);\r
-                       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";\r
-                       sHTML+="&nbsp;"+sName+"</a></nobr></p></div>";\r
-                       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));\r
-                       if(sURL!="")\r
-                               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);\r
-                       sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";\r
-               }\r
-               else\r
-                       sHTML="";\r
-       }\r
-       else\r
-       {\r
-               sHTML+="stub></div>";\r
-               gbNeedFillStub=true;\r
-               setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-function checkFillStub()\r
-{\r
-       if(!gbLData)\r
-       {\r
-               if(gchunkRequestQueue.length()>0)\r
-               {\r
-                       var cInfo=gchunkRequestQueue.deQueue();\r
-                       if(cInfo)\r
-                       {\r
-                               fillStub(cInfo.nIdx,cInfo.bLocal);\r
-                               return;\r
-                       }\r
-               }\r
-       }\r
-       if(gbNeedFillStub)\r
-       {\r
-               gbNeedFillStub=false;\r
-               setTimeout("syncInit()",1);\r
-       }\r
-}\r
-\r
-function fillStub(nIdx,bLocalProject)\r
-{\r
-       if(!gbLData)\r
-       {\r
-               gbLData=true;\r
-               var sObj=getElement(getPBId(nIdx));\r
-               if(sObj!=null)\r
-               {\r
-                       tocExpandHelpSet(nIdx,bLocalProject);\r
-                       gbNeedFillStub=false;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-               else\r
-                       setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);\r
-       }\r
-       else\r
-               gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));\r
-}\r
-\r
-function getBookId(nIdx){return "B_"+nIdx;}\r
-\r
-function getItemId(nIdx){return "I_"+nIdx;}\r
-\r
-function markBook(nIdx)\r
-{\r
-       var obj=getElement(getItemId(nIdx));\r
-       if(obj==null)\r
-               obj=getElement(getBookId(nIdx));\r
-       if(gbNav6)\r
-       {\r
-               gobj=obj;\r
-               setTimeout("delayMarkObj();",1);\r
-       }\r
-       else\r
-               markObj(obj);\r
-}\r
-\r
-function delayMarkObj()\r
-{\r
-       if(gobj)\r
-       {\r
-               markObj(gobj);\r
-               gobj=null;\r
-       }\r
-}\r
-\r
-function markObj(obj)\r
-{\r
-       if(obj!=null)\r
-       {\r
-               HighLightElement(obj,gsABgColor,"transparent");\r
-               var sPath=calTocPath(obj);\r
-               if(gsCTPath!=sPath)\r
-                       gsCTPath=sPath;\r
-       }\r
-}\r
-\r
-function markItem(nIdx)\r
-{\r
-       var obj=getElement(getItemId(nIdx));\r
-       if(gbNav6)\r
-       {\r
-               gobj=obj;\r
-               setTimeout("delayMarkObj();",1);\r
-       }\r
-       else\r
-               markObj(getElement(getItemId(nIdx)));\r
-}\r
-\r
-function calTocPath(obj)\r
-{\r
-       var sPath=getInnerText2(obj);\r
-       var pObj=getParentNode(obj);\r
-       do\r
-       {\r
-               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);\r
-               if(pObj!=null)\r
-               {\r
-                       var nId=getIdByCBId(pObj.id);\r
-                       var sObj=getElement(getPBId(nId));\r
-                       if(sObj!=null)\r
-                       {\r
-                               var objs=getItemsByBook(sObj);\r
-                               for(var i=0;i<objs.length;i++)\r
-                               {\r
-                                       var sText=getInnerText2(objs[i]);\r
-                                       if(sText.length!=0)\r
-                                       {\r
-                                               sPath=sText+gsPathSplit+sPath;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       }\r
-                       pObj=getParentNode(pObj);\r
-               }\r
-       }while(pObj!=null);\r
-       return sPath;\r
-}\r
-\r
-function writeAnItem(nIdx)\r
-{\r
-       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));\r
-       var sIcon=getItemIcon(nIdx,0);\r
-       if(sIcon=="")\r
-       {\r
-               var nItemType=getItemType(nIdx);\r
-               if(nItemType&2)\r
-                       sIcon=getItemImage(nIdx,false);\r
-               else\r
-                       sIcon=getItemImage(nIdx,true);\r
-       }\r
-       sIcon=_textToHtml_nonbsp(sIcon);\r
-       var sName=_textToHtml(getItemName(nIdx));\r
-       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""\r
-       var sAltString="";\r
-       if(nItemType&2)\r
-               sAltString="Page";\r
-       else\r
-               sAltString="Remote Page";\r
-       if(sTarget!="")\r
-               sHTML+="target=\""+sTarget+"\" ";\r
-       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";\r
-       return sHTML;\r
-}\r
-\r
-function writeBookItems(nIdx,num)\r
-{\r
-       var sHTML="";\r
-       if(num>0){\r
-               var nCIdx=0;\r
-               do{\r
-                       nCIdx++;\r
-                       var i=nIdx+nCIdx;\r
-                       var nItemType=getItemType(i);\r
-                       if(nItemType==1||nItemType==4||nItemType==8){\r
-                               sHTML+=writeBook(i);    \r
-                               nCIdx+=getItemContentsNum(i);           \r
-                       }\r
-                       else if(nItemType==2||nItemType==16){\r
-                               sHTML+=writeAnItem(i);\r
-                       }\r
-               }\r
-               while(nCIdx<num);\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-function tocExpandHelpSet(nIdx,bLocal)\r
-{\r
-       checkBookItem(nIdx);\r
-       removeLoadingDiv();\r
-       if(!isHSLoad(nIdx))\r
-       {\r
-               setHSLoad(nIdx);\r
-               var sSrc="";\r
-               if(bLocal){\r
-                       var oChunk=getChunk(nIdx);\r
-                       if(oChunk)\r
-                       {\r
-                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);\r
-                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
-                       }\r
-               }\r
-               else{\r
-                       sSrc=getRefURL(nIdx);\r
-                       var nProj=getProject(sSrc);\r
-                       if(nProj!=-1)\r
-                       {\r
-                               sSrc=gaRoot[nProj].sToc;\r
-                               if(sSrc)\r
-                                       goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);\r
-                               else\r
-                                       goChunk=null;\r
-                       }\r
-                       else\r
-                               goChunk=null;\r
-               }\r
-               if(goChunk)\r
-               {\r
-                       PrepareLoading(nIdx);\r
-                       gbToc=false;\r
-                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);\r
-               }\r
-               else\r
-               {\r
-                       gbLData=false;\r
-                       checkFillStub();\r
-               }\r
-       }\r
-}\r
-\r
-function getProject(sSrc)\r
-{\r
-       for(var i=0;i<gaProj.length;i++)\r
-               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))\r
-                       return i;\r
-       return -1;\r
-}\r
-\r
-function getPath(sPath)\r
-{\r
-       if(sPath!="")\r
-       {\r
-               sPath=_replaceSlash(sPath);\r
-               var nPosFile=sPath.lastIndexOf("/");\r
-               sPath=sPath.substring(0,nPosFile+1);\r
-       }\r
-       return sPath;\r
-}\r
-\r
-function isSamePath(sPath1,sPath2)\r
-{\r
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
-}\r
-\r
-function PrepareLoading(nIdx)\r
-{\r
-       gnInsIdx=nIdx;\r
-       if(!gsTP)\r
-       {\r
-               var oObj=getElement(getPBId(gnInsIdx));\r
-               if(oObj)\r
-                       oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIdx)\r
-{\r
-       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>";\r
-}\r
-\r
-function getItemName(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemContentsNum(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemType(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].nType;\r
-       else\r
-               return 0;\r
-}\r
-\r
-function getItemURL(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;\r
-               if(!(sPath==null||sPath==""))\r
-               {\r
-                       return _getFullPath(oChunk.sPPath,sPath);\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function getRefURL(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
-               if(!(sPath==null||sPath==""))\r
-               {\r
-                       return _getFullPath(oChunk.sPPath,sPath)\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function getTopicTarget(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")\r
-                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;\r
-       }\r
-       return "";\r
-}\r
-\r
-function getItemIcon(nIdx,nIconIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")\r
-               {\r
-                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;\r
-                       var nIndex=sIconRef.indexOf(";");\r
-                       while(nIconIdx-->0&&nIndex!=-1)\r
-                       {\r
-                               sIconRef=sIconRef.substring(nIndex+1);\r
-                               nIndex=sIconRef.indexOf(";");\r
-                       }\r
-                       if(nIconIdx<0)\r
-                       {\r
-                               if(nIndex!=-1)\r
-                                       sIconRef=sIconRef.substring(0,nIndex);\r
-                               return _getFullPath(oChunk.sPPath,sIconRef)\r
-                       }\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function TocWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if(gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
-       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
-       sStyle+=".parent {margin-left:0pt;}\n";\r
-       sStyle+=".stub {margin-left:0pt;display:none}\n";\r
-       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
-       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function TocWriteFixedWidth(bBegin,nWidth)\r
-{\r
-       if((gbIE4)&&(gbMac)&&(!gbIE5)){\r
-               if(bBegin)\r
-                       document.write("<table width="+nWidth+" border=0><tr><td>");\r
-               else\r
-                       document.write("</td></tr></table>");\r
-       }\r
-}\r
-\r
-function TocInitPage()\r
-{\r
-       var tempColl=getItemsByBook(document.body);\r
-       if(tempColl.length>0)\r
-               tempColl[0].focus();\r
-}\r
-\r
-function getItemsFromObj(obj)\r
-{\r
-       var aAnchor=new Array();\r
-       var tempColl=getChildrenByTag(obj,"P");\r
-       if(tempColl&&tempColl.length>0)\r
-       {\r
-               var anobr=new Array();\r
-               for(var i=0;i<tempColl.length;i++)\r
-               {\r
-                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");\r
-                       if(tempNobr&&tempNobr.length>0)\r
-                               for(var j=0;j<tempNobr.length;j++)\r
-                                       anobr[anobr.length]=tempNobr[j];\r
-               }\r
-               for(var s=0;s<anobr.length;s++)\r
-               {\r
-                       var tempAnchor=getChildrenByTag(anobr[s],"A");\r
-                       if(tempAnchor&&tempAnchor.length>0)\r
-                               for(var u=0;u<tempAnchor.length;u++)\r
-                                       aAnchor[aAnchor.length]=tempAnchor[u];\r
-               }\r
-       }\r
-       return aAnchor;\r
-}\r
-\r
-function getItemsByBook(obj)\r
-{\r
-       var aAnchor=new Array();\r
-       var aTAnchor=getItemsFromObj(obj);\r
-       for(var i=0;i<aTAnchor.length;i++)\r
-               aAnchor[aAnchor.length]=aTAnchor[i];\r
-       var tempBook=getChildrenByTag(obj,"DIV");\r
-       if(tempBook&&tempBook.length>0)\r
-               for(var j=0;j<tempBook.length;j++)\r
-               {\r
-                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);\r
-                       for(var s=0;s<aTAnchorDiv.length;s++)\r
-                               aAnchor[aAnchor.length]=aTAnchorDiv[s];\r
-               }\r
-       return aAnchor;\r
-}\r
-\r
-function ExpandIt(nId)\r
-{\r
-       if(!gsTP)\r
-               ExpandIt2(nId,false);\r
-}\r
-\r
-function ExpandIt2(nId,bForceOpen)\r
-{\r
-       var oC=TocExpand(nId,true,bForceOpen);\r
-       var nNewScroll=document.body.scrollTop;\r
-       if(oC.style.display=="block"){\r
-               var nTop=oC.offsetTop;\r
-               var nBottom=nTop+oC.offsetHeight;\r
-               if(document.body.scrollTop+document.body.clientHeight<nBottom){\r
-                       nNewScroll=nBottom-document.body.clientHeight;\r
-               }\r
-               if(nBottom-nTop>document.body.clientHeight){\r
-                       nNewScroll=nTop-20;\r
-               }\r
-       }\r
-       document.body.scrollTop=nNewScroll;\r
-}\r
-\r
-function TocExpand(nId,bChangeImg,bForceOpen)\r
-{\r
-       var oDiv=getElement(getCBId(nId));\r
-       if(oDiv==null) return null;\r
-\r
-       var whichIm=document.images[getBId(nId)];\r
-       if((oDiv.style.display!="block")||bForceOpen){\r
-               oDiv.style.display="block";\r
-               if(bChangeImg){\r
-                       var sPath=getPath(whichIm.src);\r
-                       sPath=_getFullPath(sPath,getBookImage(nId,false));\r
-                       whichIm.src=sPath;              \r
-               }\r
-       }else{\r
-               oDiv.style.display="none";\r
-               if(bChangeImg){\r
-                       var sPath=getPath(whichIm.src);\r
-                       sPath=_getFullPath(sPath,getBookImage(nId,true));\r
-                       whichIm.src=sPath;\r
-               }\r
-               if(gbMac&&gbIE5){\r
-                       this.parent.document.getElementById("tocIFrame").style.width="101%";\r
-                       this.parent.document.getElementById("tocIFrame").style.width="100%";\r
-               }\r
-       }\r
-       return oDiv;\r
-}\r
-\r
-function getChunkId(n)\r
-{\r
-       var nCan=-1;\r
-       for(var i=0;i<gaTocs.length;i++)\r
-               if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)\r
-               {\r
-                       if(nCan==-1)\r
-                               nCan=i;\r
-                       else\r
-                               if(gaTocs[i].nMI>=gaTocs[nCan].nMI)\r
-                                       nCan=i;\r
-               }\r
-       if(nCan!=-1)\r
-               return nCan;\r
-       else\r
-               return -1;\r
-}\r
-\r
-function getChunk(n)\r
-{\r
-       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||\r
-               gaTocs[gnCC+1].nMI>n))\r
-       {       \r
-               return gaTocs[gnCC];\r
-       }\r
-       else{\r
-               gnCC=getChunkId(n);\r
-               if(gnCC!=-1)\r
-                       return gaTocs[gnCC];\r
-               else\r
-                       return null;\r
-       }\r
-}\r
-\r
-function getBookImage(nIdx,bClosed)\r
-{\r
-       var nIdx=bClosed?0:1;\r
-       var sIcon=getItemIcon(nIdx,nIdx);\r
-       if(sIcon=="")\r
-               if(bClosed)\r
-                       sIcon=giBookClose;\r
-               else\r
-                       sIcon=giBookOpen;\r
-       return _getFullPath(gaProj[0].sPPath,sIcon);\r
-}\r
-\r
-function getItemImage(nIdx,bRemote)\r
-{\r
-       var sIcon=getItemIcon(nIdx,0);\r
-       if(sIcon=="")\r
-               if(bRemote)\r
-                       sIcon=giURLItem;\r
-               else\r
-                       sIcon=giBookItem;\r
-       return _getFullPath(gaProj[0].sPPath,sIcon);\r
-}\r
-\r
-function getInnerText2(obj)\r
-{\r
-       var sText=getInnerText(obj);\r
-       if(sText.length>0&&!gbOpera7)\r
-               sText=sText.substring(1);\r
-       return sText;\r
-}\r
-\r
-function expandToc(oObj,sRest,aIdList)\r
-{\r
-       var len=aIdList.length;\r
-       var nPos=sRest.indexOf(gsPathSplit);\r
-       if(nPos!=-1)\r
-       {\r
-               sPart=sRest.substring(0,nPos);\r
-               sRest=sRest.substring(nPos+1);\r
-       }\r
-       else\r
-       {\r
-               sPart=sRest;\r
-               var aTagAs=getItemsByBook(oObj);\r
-               for(var s=0;s<aTagAs.length;s++)\r
-               {\r
-                       var sText=getInnerText2(aTagAs[s]);\r
-                       if(sText==sPart)\r
-                       {\r
-                               aIdList[len]=aTagAs[s];\r
-                               return 1;\r
-                       }\r
-               }\r
-               return 0;\r
-       }\r
-               \r
-       var aChildren=getChildrenByTag(oObj,"DIV");\r
-       for(var i=0;i<aChildren.length;i++)\r
-       {\r
-               var sPId=aChildren[i].id;\r
-               if(!isPBId(sPId))\r
-                       continue;\r
-               var sText=getInnerText2(aChildren[i]);\r
-               if(sText!=sPart)\r
-                       continue;\r
-               aIdList[len]=getIdByPBId(sPId);\r
-               var sCId=getCBId(aIdList[len]);\r
-               var oCObj=getElement(sCId);\r
-               if(oCObj)\r
-               {\r
-                       if(oCObj.innerHTML=="")\r
-                       {\r
-                               var obj=getItemsByBook(aChildren[i]);\r
-                               if(obj.length>0)\r
-                               {\r
-                                       if(gbNav6)\r
-                                       {\r
-                                               var sCommand=obj[0].getAttribute("onClick");\r
-                                               var nCommand=sCommand.indexOf(";");\r
-                                               sCommand=sCommand.substring(0,nCommand);\r
-                                               setTimeout(sCommand,1);\r
-                                       }\r
-                                       else\r
-                                               obj[0].click();\r
-                               }\r
-                               return -1;\r
-                       }\r
-                       var nRet=expandToc(oCObj,sRest,aIdList);\r
-                       if(nRet)\r
-                               return nRet;\r
-               }\r
-       }\r
-       aIdList.length=len;\r
-       return 0;\r
-}\r
-\r
-function getIdByPBId(sPId)\r
-{\r
-       return parseInt(sPId.substring(2,sPId.length-1));\r
-}\r
-\r
-function getIdByCBId(sCId)\r
-{\r
-       return parseInt(sCId.substring(2,sCId.length-1));\r
-}\r
-\r
-function isPBId(sId)\r
-{\r
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);\r
-}\r
-\r
-function isCBId(sId)\r
-{\r
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);\r
-}\r
-\r
-function getBId(nIdx)\r
-{\r
-       return "B_"+nIdx;\r
-}\r
-\r
-function getPBId(nIdx)\r
-{\r
-       return getBId(nIdx)+"P";\r
-}\r
-\r
-function getCBId(nIdx)\r
-{\r
-       return getBId(nIdx)+"C";\r
-}\r
-\r
-function getClosestTocPath(aPaths)\r
-{\r
-       var nMaxSimilarity=0;\r
-       var nThatIndex=-1;\r
-       var sPath=null;\r
-       if(aPaths.length==0) return sPath;\r
-       for(var i=0;i<aPaths.length;i++)\r
-       {\r
-               var nSimilarity=comparePath(gsCTPath,aPaths[i]);\r
-               if(nSimilarity>nMaxSimilarity)\r
-               {\r
-                       nMaxSimilarity=nSimilarity;\r
-                       nThatIndex=i;\r
-               }\r
-       }\r
-       if(nThatIndex!=-1)\r
-               sPath=aPaths[nThatIndex];\r
-       else\r
-               sPath=aPaths[0];\r
-       return sPath;\r
-}\r
-\r
-function comparePath(sPath1,sPath2)\r
-{\r
-       var nMaxSimilarity=0;\r
-       var nStartPos1=0;\r
-       var nPos1=-1;\r
-       var nStartPos2=0;\r
-       var nPos2=-1;\r
-       do{\r
-               var sCheck1=null;\r
-               var sCheck2=null;\r
-               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);\r
-               if(nPos1!=-1)\r
-               {\r
-                       sCheck1=sPath1.substring(nStartPos1,nPos1);\r
-                       nStartPos1=nPos1+1;\r
-               }\r
-               else\r
-               {\r
-                       sCheck1=sPath1.substring(nStartPos1);\r
-                       nStartPos1=-1;\r
-               }\r
-               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);\r
-               if(nPos1!=-1)\r
-               {\r
-                       sCheck2=sPath2.substring(nStartPos2,nPos2);\r
-                       nStartPos2=nPos2+1;\r
-               }\r
-               else\r
-               {\r
-                       sCheck2=sPath2.substring(nStartPos2);\r
-                       nStartPos2=-1;\r
-               }\r
-               if(sCheck1==sCheck2)\r
-                       nMaxSimilarity++;\r
-               else\r
-                       break;\r
-       }while(nStartPos1!=-1&&nStartPos2!=-1);\r
-       return nMaxSimilarity;\r
-}\r
-\r
-function getTocPaths(oTopicParam)\r
-{\r
-       var aRelTocPaths=oTopicParam.aPaths;\r
-       var aPaths=new Array();\r
-       for(var i=0;i<gaProj.length;i++)\r
-               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))\r
-               {\r
-                       for(var j=0;j<aRelTocPaths.length;j++)\r
-                               for (var k=0;k<gaRoot[i].aRPath.length;k++)\r
-                               {\r
-                                       var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];\r
-                                       aPaths[aPaths.length]=sPath.substring(1);\r
-                               }\r
-                       break;\r
-               }\r
-       return aPaths;\r
-}\r
-\r
-function syncInit()\r
-{\r
-       if(gsTP&&!gbNeedFillStub)\r
-       {\r
-               gInSync=true;\r
-               var obj=document.body;\r
-               var aIdList=new Array();\r
-               var nRet=expandToc(obj,gsTP,aIdList);\r
-               if(nRet!=-1)\r
-               {\r
-                       if(nRet==1)\r
-                       {\r
-                               if(aIdList.length)\r
-                                       for(var i=0;i<aIdList.length-1;i++)\r
-                                               ExpandIt2(aIdList[i],true);\r
-                               gsCTPath=gsTP;\r
-                               if(!gbIE55)\r
-                                       aIdList[aIdList.length-1].focus();\r
-                               else\r
-                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");\r
-                       }\r
-                       var aPaths=gaBTPs;\r
-                       gsTP=null;\r
-                       gaBTPs=null;\r
-                       if(aPaths!=null)\r
-                       {\r
-                               var sPath=getClosestTocPath(aPaths);\r
-                               if(sPath!=null)\r
-                               {       \r
-                                       gsTP=sPath;             \r
-                                       setTimeout("syncInit()",1);\r
-                               }\r
-                       }\r
-               }\r
-               gInSync=false;\r
-       }\r
-}\r
-\r
-function loadToc()\r
-{\r
-       if(!gbLoadToc)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbLoadToc=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       gaProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       load1B1();\r
-               }\r
-       }\r
-}\r
-\r
-function load1B1()\r
-{\r
-       if(gnLT+1<gaProj.length)\r
-               for(var i=gnLT+1;i<gaProj.length;i++)\r
-                       if(gaProj[i].sToc)\r
-                       {\r
-                               gbToc=true;\r
-                               gnLT=i;\r
-                               setTimeout("loadTocInfo()",1);\r
-                               return true;\r
-                       }\r
-       return false;\r
-}\r
-\r
-function loadTocInfo()\r
-{\r
-       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);\r
-}\r
-\r
-function loadData2(sFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(sFile);\r
-       else\r
-               loadData(sFile);\r
-}\r
-\r
-function projReady(sRoot,aProj)\r
-{\r
-       if(gaRoot.length<=gnLT||!gaRoot[gnLT])\r
-               gaRoot[gnLT]=new Object();\r
-       gaRoot[gnLT].sToc=sRoot;\r
-       \r
-       if(gnLT==0)\r
-       {\r
-               gaRoot[gnLT].aRPath=new Array();\r
-               gaRoot[gnLT].aRPath[0]=gsPathSplit;\r
-       }\r
-\r
-       updatePTPath(gnLT,aProj);\r
-\r
-       if(!((gnLT+1<gaProj.length)&&load1B1()))\r
-       {\r
-               gbReady=true;\r
-               if(gbIE4)\r
-                       setTimeout("loadImages();",1);\r
-               else\r
-                       setTimeout("loadTData();",1);\r
-       }\r
-}\r
-\r
-function loadTData()\r
-{\r
-       if(gaProj[0].sToc!="")\r
-       {\r
-               gbLData=true;\r
-               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);\r
-               gbToc=false;\r
-               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);\r
-       }\r
-}\r
-\r
-function updatePTPath(n,aProj)\r
-{\r
-       if(aProj)\r
-               for(var i=0;i<aProj.length;i++)\r
-               {\r
-                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);\r
-                       for(var j=0;j<gaProj.length;j++)\r
-                               if(isSamePath(sFullPath,gaProj[j].sPPath))\r
-                               {\r
-                                       if(gaRoot.length<=j||!gaRoot[j])\r
-                                               gaRoot[j]=new Object();\r
-                                       if(!gaRoot[j].aRPath)\r
-                                               gaRoot[j].aRPath=new Array();\r
-\r
-                                       if(gaRoot[n].aRPath)\r
-                                               for(var k=0;k<gaRoot[n].aRPath.length;k++)\r
-                                               {\r
-                                                       var bDup=false;\r
-                                                       var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;\r
-                                                       for(var l=0;l<gaRoot[j].aRPath.length;l++)\r
-                                                               if(gaRoot[j].aRPath[l]==sTFPath)\r
-                                                               {\r
-                                                                       bDup=true;\r
-                                                                       break;\r
-                                                               }\r
-                                                       if(!bDup)\r
-                                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;\r
-                                               }\r
-                                       else\r
-                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;\r
-                                       break;\r
-                               }\r
-               }\r
-}\r
-\r
-function onLoadXMLError()\r
-{\r
-       if(gbToc)\r
-       {\r
-               var sRoot="";\r
-               var aRProj=new Array();\r
-               projReady(sRoot,aRProj);\r
-       }\r
-       else\r
-       {\r
-               var aToc=new Array();\r
-               putData(aToc)\r
-       }\r
-}\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gbToc)\r
-       {\r
-               var tocNode=xmlDoc.getElementsByTagName("toc")[0];\r
-               if(tocNode)\r
-               {\r
-                       var sRoot=tocNode.getAttribute("root");\r
-                       var rmtProject=tocNode.getElementsByTagName("project");\r
-                       var aRProj=new Array();\r
-                       if(rmtProject.length>0)\r
-                       {\r
-                               for(var i=0;i<rmtProject.length;i++)\r
-                               {\r
-                                       aRProj[i]=new Object();\r
-                                       var sURL=rmtProject[i].getAttribute("url");\r
-                                       if(sURL)\r
-                                       {\r
-                                               if(sURL.lastIndexOf("/")!=sURL.length-1)\r
-                                                       sURL+="/";                                              \r
-                                       }\r
-                                       aRProj[i].sPPath=sURL;\r
-                                       aRProj[i].sRPath = "";\r
-                                       var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];\r
-                                       if (oSubPath)\r
-                                       {\r
-                                               while (oSubPath)\r
-                                               {\r
-                                                       aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";\r
-                                                       oSubPath = oSubPath.getElementsByTagName("subpath")[0];\r
-                                               }\r
-                                       }\r
-                                       else\r
-                                               aRProj[i].sRPath=rmtProject[i].getAttribute("path");\r
-                               }\r
-                       }\r
-                       projReady(sRoot,aRProj);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];\r
-               if(chunkNode)\r
-               {\r
-                       var aToc=new Array();\r
-                       processBook(chunkNode,aToc);\r
-                       putData(aToc);\r
-               }\r
-       }\r
-}\r
-\r
-function processBook(node,aToc)\r
-{\r
-       var i=0;\r
-       var entry=null;\r
-       var prevEntry=null;\r
-       var oChild=node.firstChild;\r
-       do{\r
-               if(oChild)\r
-               {\r
-                       if(oChild.nodeName.indexOf("#")!=0)\r
-                       {\r
-                               var sName=oChild.getAttribute("name");\r
-                               var sURL=oChild.getAttribute("url");\r
-                               var sRef=oChild.getAttribute("ref");\r
-                               var sTarget=oChild.getAttribute("target");\r
-                               var sIcons=oChild.getAttribute("images");\r
-                               var item=new Object();\r
-                               item.sItemName=sName;\r
-                               if(sTarget)\r
-                                       item.sTarget=sTarget;\r
-                               if(sIcons)\r
-                                       item.sIconRef=sIcons;\r
-                               if(sURL==null) sURL="";\r
-\r
-                               item.sItemURL=sURL;\r
-                               \r
-                               if(oChild.nodeName=="book")\r
-                               {\r
-                                       item.nType=1;\r
-                                       aToc[aToc.length]=item;\r
-                                       var nCurrPos=aToc.length;\r
-                                       processBook(oChild,aToc);\r
-                                       item.nContents=aToc.length-nCurrPos;\r
-                               }\r
-                               else if(oChild.nodeName=="item")\r
-                               {\r
-                                       item.nType=2;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="remoteitem")\r
-                               {\r
-                                       item.nType=16;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="project")\r
-                               {\r
-                                       if(sRef)\r
-                                       {\r
-                                               if(sRef.lastIndexOf("/")!=sRef.length-1)\r
-                                                       sRef+="/";                                              \r
-                                       }\r
-                                       item.nType=4;\r
-                                       item.sRefURL=sRef;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="chunk")\r
-                               {\r
-                                       item.nType=8;\r
-                                       item.sRefURL=sRef;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                       }\r
-               }\r
-               else\r
-                       break;\r
-               oChild=oChild.nextSibling;\r
-       }while(true);\r
-}\r
-\r
-function putData(aTocs)\r
-{\r
-       gaTocsNs61Fix=aTocs;\r
-       setTimeout("realPutData();",1);\r
-}\r
-\r
-function realPutData()\r
-{\r
-       removeLoadingDiv();\r
-       var aTocs=gaTocsNs61Fix;\r
-       if(!aTocs) return;\r
-       if(goChunk)\r
-       {\r
-               var n=gnMinIdx;\r
-               goChunk.nMI=gnMinIdx;\r
-               goChunk.aTocs=aTocs;\r
-               gnMinIdx+=aTocs.length;\r
-               if(gnInsIdx!=-1)\r
-               {\r
-                       var oObj=getElement(getPBId(gnInsIdx));\r
-                       if(oObj)\r
-                       {\r
-                               oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));\r
-                               setTimeout("syncInit()",1);\r
-                       }\r
-               }\r
-               else{\r
-                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));\r
-                       var oParam=new Object();\r
-                       oParam.oTocInfo=null;\r
-                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-                       if(SendMessage(oMsg))\r
-                       {\r
-                               if(oMsg.oParam.oTocInfo)\r
-                                       syncWithPaths(oMsg.oParam.oTocInfo);\r
-                       }\r
-               }       \r
-       }\r
-       gbLData=false;\r
-       checkFillStub();\r
-}\r
-\r
-function syncWithPaths(oTopicParam)\r
-{\r
-       var aPaths=getTocPaths(oTopicParam);\r
-       if(gsTP)\r
-               gaBTPs=aPaths;\r
-       else{\r
-               var sPath=getClosestTocPath(aPaths);\r
-               if(sPath!=null)\r
-               {\r
-                       gsTP=sPath;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       loadToc();\r
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadImages()\r
-{\r
-       if(giBookClose)\r
-       {\r
-               gaImgs[gnImages]=giBookClose;\r
-               gnImages++;\r
-       }               \r
-       if(giBookOpen)\r
-       {\r
-               gaImgs[gnImages]=giBookOpen;\r
-               gnImages++;\r
-       }               \r
-       if(giBookItem)\r
-       {\r
-               gaImgs[gnImages]=giBookItem;\r
-               gnImages++;\r
-       }               \r
-       if(giURLItem)\r
-       {\r
-               gaImgs[gnImages]=giURLItem;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookClose)\r
-       {\r
-               gaImgs[gnImages]=giNewBookClose;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookOpen)\r
-       {\r
-               gaImgs[gnImages]=giNewBookOpen;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookItem)\r
-       {\r
-               gaImgs[gnImages]=giNewBookItem;\r
-               gnImages++;\r
-       }               \r
-       if(giNewURLItem)\r
-       {\r
-               gaImgs[gnImages]=giNewURLItem;\r
-               gnImages++;\r
-       }\r
-       if(gnImages>0)\r
-       {\r
-               setTimeout("loadDataAfter();",1000);\r
-               loadImage(gaImgs[0]);\r
-       }\r
-       else\r
-               loadDataAfter();\r
-}\r
-\r
-function loadImage(sURL)\r
-{\r
-       var oImg=new Image();\r
-       oImg.onload=checkImageLoading;\r
-       oImg.onerror=errorImageLoading;\r
-       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);\r
-}\r
-\r
-function loadDataAfter()\r
-{\r
-       if(!gbLoadData)\r
-       {\r
-               gbLoadData=true;\r
-               loadTData();\r
-       }\r
-}\r
-\r
-function errorImageLoading()\r
-{\r
-       gnLoadedImages++;\r
-       if(gnImages==gnLoadedImages)\r
-               loadDataAfter();\r
-       else\r
-               loadImage(gaImgs[gnLoadedImages]);      \r
-}\r
-\r
-function checkImageLoading()\r
-{\r
-       gnLoadedImages++;\r
-       if(gnImages==gnLoadedImages)\r
-               loadDataAfter();\r
-       else\r
-               loadImage(gaImgs[gnLoadedImages]);      \r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SYNCTOC);\r
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadToc();\r
-               }\r
-               else if(nMsgId==WH_MSG_SYNCTOC)\r
-               {\r
-                       if(gbReady)\r
-                       {\r
-                               syncWithPaths(oMsg.oParam);\r
-                       }\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       if(!gbNav6)\r
-                               document.body.focus();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SYNCTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_unload;\r
-       gbWhTHost=true;\r
-}\r
-else\r
+//     WebHelp 5.10.007
+var gaHSLoad=new Array();
+var gnMinIdx=0;
+var gnInsIdx=-1;
+var gsLoadingDivID="LoadingDiv";
+var gsLoadingMsg="Loading, click here to cancel...";
+var gaProj=null;
+var gaTocs=new Array();
+var goChunk=null;
+var gbReady=false;
+var gbToc=false;
+var gbXML=false;
+var gaRoot=new Array();
+var gnCC=-1;
+var gsTP="";
+var gaBTPs="";
+var gsCTPath="";
+var gnLT=-1;
+var gsPathSplit="\n";
+var gsBgColor="#ffffff";
+var gsBgImage="";
+var goFont=null;
+var goHFont=null;
+
+var gsMargin="0pt";
+var gsIndent="15pt";
+var gsABgColor="#cccccc";
+
+var giBookClose="";
+var giBookOpen="";
+var giBookItem="";
+var giURLItem="";
+var giNewBookClose="";
+var giNewBookOpen="";
+var giNewBookItem="";
+var giNewURLItem="";
+var gnImages=0;
+var gnLoadedImages=0;
+var gaImgs=new Array();
+var gbLoadData=false;
+var gobj=null;
+var gaTocsNs61Fix=null;
+var gbWhTHost=false;
+var gBookItems=new Array();
+var gInSync=false;
+var gbLData=false;
+var gbNeedFillStub=false;
+var gbLoadToc=false;
+
+function chunkInfoQueue()
+{
+       this.aContent=new Array();
+       this.inQueue=function(cInfo)
+       {
+               this.aContent[this.aContent.length]=cInfo;
+       }
+       this.deQueue=function()
+       {
+               var cInfo=null;
+               if(this.aContent.length>0)
+               {
+                       cInfo=this.aContent[0];
+                       for(var i=1;i<this.aContent.length;i++)
+                               this.aContent[i-1]=this.aContent[i];
+                       this.aContent.length--;
+               }
+               return cInfo;
+       }
+       this.length=function()
+       {
+               return this.aContent.length;
+       }
+}
+
+var gchunkRequestQueue=new chunkInfoQueue();
+
+function chunkInfo(nIdx, bLocal)
+{
+       this.nIdx=nIdx;
+       this.bLocal=bLocal;
+}
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Normal") goFont=vFont;
+       else if(sType=="Hover") goHFont=vFont;
+}
+
+function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
+
+function setMargin(sMargin){gsMargin=sMargin;}
+
+function setIndent(sIndent){gsIndent=sIndent;}
+
+function setIcon(sType,sURL)
+{
+       if(sType=="BookOpen")
+               giBookOpen=sURL;
+       else if(sType=="BookClose")
+               giBookClose=sURL;
+       else if(sType=="Item")
+               giBookItem=sURL;
+       else if(sType=="RemoteItem")
+               giURLItem=sURL;
+       else if(sType=="NewBookClose")
+               giNewBookClose=sURL;
+       else if(sType=="NewBookOpen")
+               giNewBookOpen=sURL;
+       else if(sType=="NewItem")
+               giNewBookItem=sURL;
+       else if(sType=="NewRemoteItem")
+               giNewURLItem=sURL;              
+}
+
+function bookItem(sTarget,sURL)
+{
+       if(sTarget)
+               this.sTarget=sTarget;
+       else
+               this.sTarget="bsscright";
+       this.sURL=sURL;
+}
+
+function addBookItem(sBookId,sTarget,sURL)
+{
+       gBookItems[sBookId]=new bookItem(sTarget,sURL);         
+}
+
+function tocChunk(sPPath,sDPath)
+{
+       this.sPPath=sPPath;
+       this.sDPath=sDPath;
+       this.nMI=-1;
+       this.aTocs=null;
+}
+
+function addTocChunk(sPPath,sDPath)
+{
+       var oChunk=new tocChunk(sPPath,sDPath);
+       gaTocs[gaTocs.length]=oChunk;
+       return oChunk;
+}
+
+function isHSLoad(nIdx)
+{
+       for(var i=0;i<gaHSLoad.length;i++)
+               if(gaHSLoad[i]==nIdx)
+                       return true;
+       return false;
+}
+
+function setHSLoad(nIdx)
+{
+       if(!isHSLoad(nIdx))
+       {
+               var len=gaHSLoad.length;
+               for(var i=0;i<len;i++)
+                       if(gaHSLoad[i]==-1)
+                       {
+                               gaHSLoad[i]=nIdx;
+                               return;
+                       }
+               gaHSLoad[len]=nIdx;
+       }
+}
+
+function setHSUnLoad(nIdx)
+{
+       if(isHSLoad(nIdx))
+       {
+               for(var i=0;i<gaHSLoad.length;i++)
+                       if(gaHSLoad[i]==nIdx)
+                       {
+                               gaHSLoad[i]=-1;
+                               return;
+                       }
+       }
+}
+
+function removeLoadingDiv()
+{
+       var eLoadingDiv=getElement(gsLoadingDivID);
+       if(eLoadingDiv)
+               removeThis(eLoadingDiv);
+}
+
+function checkBookItem(nIdx)
+{
+       if(!gInSync)
+       {
+               var sBookId=getBookId(nIdx);
+               if(gBookItems[sBookId])
+               {
+                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
+               }
+       }
+}
+
+function insertBookItems(nIdx,num)
+{
+       checkBookItem(nIdx);
+       var sChildBookId=getCBId(nIdx);
+       var eChildDiv=getElement(sChildBookId);
+       if(eChildDiv){
+               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
+                       (eChildDiv.all&&eChildDiv.all.length==0)){
+                       var sHTML=writeBookItems(nIdx,num);
+                       eChildDiv.innerHTML=sHTML;
+                       setTimeout("syncInit()",1);
+               }
+       }
+       ExpandIt(nIdx);
+}
+
+function isBookEmpty(nIdx)
+{
+       var num=getItemContentsNum(nIdx);
+       if (num>0)
+       {
+               var nCIdx=0;
+               do {
+                       nCIdx++;
+                       var i=nIdx+nCIdx;
+                       var nItemType=getItemType(i);
+                       if(nItemType==1){
+                               if (!isBookEmpty(i))
+                                       return false;
+                       }
+                       else if(nItemType==4){
+                               var     sSrc=getRefURL(i);
+                               var nProj=getProject(sSrc);
+                               if(nProj!=-1){
+                                       sSrc=gaRoot[nProj].sToc;
+                                       if(sSrc)
+                                               return false;
+                               }
+                       }
+                       else if(nItemType==2||nItemType==16||nItemType==8)
+                               return false;
+               } while(nCIdx<num);
+       }
+       return true;
+}
+
+function writeBook(nIdx)
+{
+       var sIcon=getBookImage(nIdx,true);
+       var sName=_textToHtml(getItemName(nIdx));
+       sIcon=_textToHtml_nonbsp(sIcon);
+       
+       var nType=getItemType(nIdx);
+       var bLocal=(nType==1);
+       var bLocalProject=(nType!=4);
+       
+       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
+       if(bLocal)
+       {
+               if (!isBookEmpty(nIdx))
+               {
+                       sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
+                       sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
+                       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
+                       sHTML+="&nbsp;"+sName+"</a></nobr></p></div>";
+                       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
+                       if(sURL!="")
+                               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
+                       sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
+               }
+               else
+                       sHTML="";
+       }
+       else
+       {
+               sHTML+="stub></div>";
+               gbNeedFillStub=true;
+               setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
+       }
+       return sHTML;
+}
+
+function checkFillStub()
+{
+       if(!gbLData)
+       {
+               if(gchunkRequestQueue.length()>0)
+               {
+                       var cInfo=gchunkRequestQueue.deQueue();
+                       if(cInfo)
+                       {
+                               fillStub(cInfo.nIdx,cInfo.bLocal);
+                               return;
+                       }
+               }
+       }
+       if(gbNeedFillStub)
+       {
+               gbNeedFillStub=false;
+               setTimeout("syncInit()",1);
+       }
+}
+
+function fillStub(nIdx,bLocalProject)
+{
+       if(!gbLData)
+       {
+               gbLData=true;
+               var sObj=getElement(getPBId(nIdx));
+               if(sObj!=null)
+               {
+                       tocExpandHelpSet(nIdx,bLocalProject);
+                       gbNeedFillStub=false;
+                       setTimeout("syncInit()",1);
+               }
+               else
+                       setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
+       }
+       else
+               gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
+}
+
+function getBookId(nIdx){return "B_"+nIdx;}
+
+function getItemId(nIdx){return "I_"+nIdx;}
+
+function markBook(nIdx)
+{
+       var obj=getElement(getItemId(nIdx));
+       if(obj==null)
+               obj=getElement(getBookId(nIdx));
+       if(gbNav6)
+       {
+               gobj=obj;
+               setTimeout("delayMarkObj();",1);
+       }
+       else
+               markObj(obj);
+}
+
+function delayMarkObj()
+{
+       if(gobj)
+       {
+               markObj(gobj);
+               gobj=null;
+       }
+}
+
+function markObj(obj)
+{
+       if(obj!=null)
+       {
+               HighLightElement(obj,gsABgColor,"transparent");
+               var sPath=calTocPath(obj);
+               if(gsCTPath!=sPath)
+                       gsCTPath=sPath;
+       }
+}
+
+function markItem(nIdx)
+{
+       var obj=getElement(getItemId(nIdx));
+       if(gbNav6)
+       {
+               gobj=obj;
+               setTimeout("delayMarkObj();",1);
+       }
+       else
+               markObj(getElement(getItemId(nIdx)));
+}
+
+function calTocPath(obj)
+{
+       var sPath=getInnerText2(obj);
+       var pObj=getParentNode(obj);
+       do
+       {
+               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
+               if(pObj!=null)
+               {
+                       var nId=getIdByCBId(pObj.id);
+                       var sObj=getElement(getPBId(nId));
+                       if(sObj!=null)
+                       {
+                               var objs=getItemsByBook(sObj);
+                               for(var i=0;i<objs.length;i++)
+                               {
+                                       var sText=getInnerText2(objs[i]);
+                                       if(sText.length!=0)
+                                       {
+                                               sPath=sText+gsPathSplit+sPath;
+                                               break;
+                                       }
+                               }
+                       }
+                       pObj=getParentNode(pObj);
+               }
+       }while(pObj!=null);
+       return sPath;
+}
+
+function writeAnItem(nIdx)
+{
+       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
+       var sIcon=getItemIcon(nIdx,0);
+       if(sIcon=="")
+       {
+               var nItemType=getItemType(nIdx);
+               if(nItemType&2)
+                       sIcon=getItemImage(nIdx,false);
+               else
+                       sIcon=getItemImage(nIdx,true);
+       }
+       sIcon=_textToHtml_nonbsp(sIcon);
+       var sName=_textToHtml(getItemName(nIdx));
+       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
+       var sAltString="";
+       if(nItemType&2)
+               sAltString="Page";
+       else
+               sAltString="Remote Page";
+       if(sTarget!="")
+               sHTML+="target=\""+sTarget+"\" ";
+       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";
+       return sHTML;
+}
+
+function writeBookItems(nIdx,num)
+{
+       var sHTML="";
+       if(num>0){
+               var nCIdx=0;
+               do{
+                       nCIdx++;
+                       var i=nIdx+nCIdx;
+                       var nItemType=getItemType(i);
+                       if(nItemType==1||nItemType==4||nItemType==8){
+                               sHTML+=writeBook(i);    
+                               nCIdx+=getItemContentsNum(i);           
+                       }
+                       else if(nItemType==2||nItemType==16){
+                               sHTML+=writeAnItem(i);
+                       }
+               }
+               while(nCIdx<num);
+       }
+       return sHTML;
+}
+
+function tocExpandHelpSet(nIdx,bLocal)
+{
+       checkBookItem(nIdx);
+       removeLoadingDiv();
+       if(!isHSLoad(nIdx))
+       {
+               setHSLoad(nIdx);
+               var sSrc="";
+               if(bLocal){
+                       var oChunk=getChunk(nIdx);
+                       if(oChunk)
+                       {
+                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
+                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
+                       }
+               }
+               else{
+                       sSrc=getRefURL(nIdx);
+                       var nProj=getProject(sSrc);
+                       if(nProj!=-1)
+                       {
+                               sSrc=gaRoot[nProj].sToc;
+                               if(sSrc)
+                                       goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
+                               else
+                                       goChunk=null;
+                       }
+                       else
+                               goChunk=null;
+               }
+               if(goChunk)
+               {
+                       PrepareLoading(nIdx);
+                       gbToc=false;
+                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
+               }
+               else
+               {
+                       gbLData=false;
+                       checkFillStub();
+               }
+       }
+}
+
+function getProject(sSrc)
+{
+       for(var i=0;i<gaProj.length;i++)
+               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
+                       return i;
+       return -1;
+}
+
+function getPath(sPath)
+{
+       if(sPath!="")
+       {
+               sPath=_replaceSlash(sPath);
+               var nPosFile=sPath.lastIndexOf("/");
+               sPath=sPath.substring(0,nPosFile+1);
+       }
+       return sPath;
+}
+
+function isSamePath(sPath1,sPath2)
+{
+       return (sPath1.toLowerCase()==sPath2.toLowerCase());
+}
+
+function PrepareLoading(nIdx)
+{
+       gnInsIdx=nIdx;
+       if(!gsTP)
+       {
+               var oObj=getElement(getPBId(gnInsIdx));
+               if(oObj)
+                       oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
+       }
+}
+
+function writeLoadingDiv(nIdx)
+{
+       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>";
+}
+
+function getItemName(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
+       else
+               return null;
+}
+
+function getItemContentsNum(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
+       else
+               return null;
+}
+
+function getItemType(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+               return oChunk.aTocs[nIdx-oChunk.nMI].nType;
+       else
+               return 0;
+}
+
+function getItemURL(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
+               if(!(sPath==null||sPath==""))
+               {
+                       return _getFullPath(oChunk.sPPath,sPath);
+               }
+       }
+       return "";
+}
+
+function getRefURL(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
+               if(!(sPath==null||sPath==""))
+               {
+                       return _getFullPath(oChunk.sPPath,sPath)
+               }
+       }
+       return "";
+}
+
+function getTopicTarget(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
+                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
+       }
+       return "";
+}
+
+function getItemIcon(nIdx,nIconIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
+               {
+                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
+                       var nIndex=sIconRef.indexOf(";");
+                       while(nIconIdx-->0&&nIndex!=-1)
+                       {
+                               sIconRef=sIconRef.substring(nIndex+1);
+                               nIndex=sIconRef.indexOf(";");
+                       }
+                       if(nIconIdx<0)
+                       {
+                               if(nIndex!=-1)
+                                       sIconRef=sIconRef.substring(0,nIndex);
+                               return _getFullPath(oChunk.sPPath,sIconRef)
+                       }
+               }
+       }
+       return "";
+}
+
+function TocWriteClassStyle()
+{
+       var sStyle="<STYLE TYPE='text/css'>\n";
+       if(gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
+       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
+       sStyle+=".parent {margin-left:0pt;}\n";
+       sStyle+=".stub {margin-left:0pt;display:none}\n";
+       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
+       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
+       sStyle+="</STYLE>";
+       document.write(sStyle);
+}
+
+function TocWriteFixedWidth(bBegin,nWidth)
+{
+       if((gbIE4)&&(gbMac)&&(!gbIE5)){
+               if(bBegin)
+                       document.write("<table width="+nWidth+" border=0><tr><td>");
+               else
+                       document.write("</td></tr></table>");
+       }
+}
+
+function TocInitPage()
+{
+       var tempColl=getItemsByBook(document.body);
+       if(tempColl.length>0)
+               tempColl[0].focus();
+}
+
+function getItemsFromObj(obj)
+{
+       var aAnchor=new Array();
+       var tempColl=getChildrenByTag(obj,"P");
+       if(tempColl&&tempColl.length>0)
+       {
+               var anobr=new Array();
+               for(var i=0;i<tempColl.length;i++)
+               {
+                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
+                       if(tempNobr&&tempNobr.length>0)
+                               for(var j=0;j<tempNobr.length;j++)
+                                       anobr[anobr.length]=tempNobr[j];
+               }
+               for(var s=0;s<anobr.length;s++)
+               {
+                       var tempAnchor=getChildrenByTag(anobr[s],"A");
+                       if(tempAnchor&&tempAnchor.length>0)
+                               for(var u=0;u<tempAnchor.length;u++)
+                                       aAnchor[aAnchor.length]=tempAnchor[u];
+               }
+       }
+       return aAnchor;
+}
+
+function getItemsByBook(obj)
+{
+       var aAnchor=new Array();
+       var aTAnchor=getItemsFromObj(obj);
+       for(var i=0;i<aTAnchor.length;i++)
+               aAnchor[aAnchor.length]=aTAnchor[i];
+       var tempBook=getChildrenByTag(obj,"DIV");
+       if(tempBook&&tempBook.length>0)
+               for(var j=0;j<tempBook.length;j++)
+               {
+                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);
+                       for(var s=0;s<aTAnchorDiv.length;s++)
+                               aAnchor[aAnchor.length]=aTAnchorDiv[s];
+               }
+       return aAnchor;
+}
+
+function ExpandIt(nId)
+{
+       if(!gsTP)
+               ExpandIt2(nId,false);
+}
+
+function ExpandIt2(nId,bForceOpen)
+{
+       var oC=TocExpand(nId,true,bForceOpen);
+       var nNewScroll=document.body.scrollTop;
+       if(oC.style.display=="block"){
+               var nTop=oC.offsetTop;
+               var nBottom=nTop+oC.offsetHeight;
+               if(document.body.scrollTop+document.body.clientHeight<nBottom){
+                       nNewScroll=nBottom-document.body.clientHeight;
+               }
+               if(nBottom-nTop>document.body.clientHeight){
+                       nNewScroll=nTop-20;
+               }
+       }
+       document.body.scrollTop=nNewScroll;
+}
+
+function TocExpand(nId,bChangeImg,bForceOpen)
+{
+       var oDiv=getElement(getCBId(nId));
+       if(oDiv==null) return null;
+
+       var whichIm=document.images[getBId(nId)];
+       if((oDiv.style.display!="block")||bForceOpen){
+               oDiv.style.display="block";
+               if(bChangeImg){
+                       var sPath=getPath(whichIm.src);
+                       sPath=_getFullPath(sPath,getBookImage(nId,false));
+                       whichIm.src=sPath;              
+               }
+       }else{
+               oDiv.style.display="none";
+               if(bChangeImg){
+                       var sPath=getPath(whichIm.src);
+                       sPath=_getFullPath(sPath,getBookImage(nId,true));
+                       whichIm.src=sPath;
+               }
+               if(gbMac&&gbIE5){
+                       this.parent.document.getElementById("tocIFrame").style.width="101%";
+                       this.parent.document.getElementById("tocIFrame").style.width="100%";
+               }
+       }
+       return oDiv;
+}
+
+function getChunkId(n)
+{
+       var nCan=-1;
+       for(var i=0;i<gaTocs.length;i++)
+               if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
+               {
+                       if(nCan==-1)
+                               nCan=i;
+                       else
+                               if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
+                                       nCan=i;
+               }
+       if(nCan!=-1)
+               return nCan;
+       else
+               return -1;
+}
+
+function getChunk(n)
+{
+       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
+               gaTocs[gnCC+1].nMI>n))
+       {       
+               return gaTocs[gnCC];
+       }
+       else{
+               gnCC=getChunkId(n);
+               if(gnCC!=-1)
+                       return gaTocs[gnCC];
+               else
+                       return null;
+       }
+}
+
+function getBookImage(nIdx,bClosed)
+{
+       var nIdx=bClosed?0:1;
+       var sIcon=getItemIcon(nIdx,nIdx);
+       if(sIcon=="")
+               if(bClosed)
+                       sIcon=giBookClose;
+               else
+                       sIcon=giBookOpen;
+       return _getFullPath(gaProj[0].sPPath,sIcon);
+}
+
+function getItemImage(nIdx,bRemote)
+{
+       var sIcon=getItemIcon(nIdx,0);
+       if(sIcon=="")
+               if(bRemote)
+                       sIcon=giURLItem;
+               else
+                       sIcon=giBookItem;
+       return _getFullPath(gaProj[0].sPPath,sIcon);
+}
+
+function getInnerText2(obj)
+{
+       var sText=getInnerText(obj);
+       if(sText.length>0&&!gbOpera7)
+               sText=sText.substring(1);
+       return sText;
+}
+
+function expandToc(oObj,sRest,aIdList)
+{
+       var len=aIdList.length;
+       var nPos=sRest.indexOf(gsPathSplit);
+       if(nPos!=-1)
+       {
+               sPart=sRest.substring(0,nPos);
+               sRest=sRest.substring(nPos+1);
+       }
+       else
+       {
+               sPart=sRest;
+               var aTagAs=getItemsByBook(oObj);
+               for(var s=0;s<aTagAs.length;s++)
+               {
+                       var sText=getInnerText2(aTagAs[s]);
+                       if(sText==sPart)
+                       {
+                               aIdList[len]=aTagAs[s];
+                               return 1;
+                       }
+               }
+               return 0;
+       }
+               
+       var aChildren=getChildrenByTag(oObj,"DIV");
+       for(var i=0;i<aChildren.length;i++)
+       {
+               var sPId=aChildren[i].id;
+               if(!isPBId(sPId))
+                       continue;
+               var sText=getInnerText2(aChildren[i]);
+               if(sText!=sPart)
+                       continue;
+               aIdList[len]=getIdByPBId(sPId);
+               var sCId=getCBId(aIdList[len]);
+               var oCObj=getElement(sCId);
+               if(oCObj)
+               {
+                       if(oCObj.innerHTML=="")
+                       {
+                               var obj=getItemsByBook(aChildren[i]);
+                               if(obj.length>0)
+                               {
+                                       if(gbNav6)
+                                       {
+                                               var sCommand=obj[0].getAttribute("onClick");
+                                               var nCommand=sCommand.indexOf(";");
+                                               sCommand=sCommand.substring(0,nCommand);
+                                               setTimeout(sCommand,1);
+                                       }
+                                       else
+                                               obj[0].click();
+                               }
+                               return -1;
+                       }
+                       var nRet=expandToc(oCObj,sRest,aIdList);
+                       if(nRet)
+                               return nRet;
+               }
+       }
+       aIdList.length=len;
+       return 0;
+}
+
+function getIdByPBId(sPId)
+{
+       return parseInt(sPId.substring(2,sPId.length-1));
+}
+
+function getIdByCBId(sCId)
+{
+       return parseInt(sCId.substring(2,sCId.length-1));
+}
+
+function isPBId(sId)
+{
+       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
+}
+
+function isCBId(sId)
+{
+       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
+}
+
+function getBId(nIdx)
+{
+       return "B_"+nIdx;
+}
+
+function getPBId(nIdx)
+{
+       return getBId(nIdx)+"P";
+}
+
+function getCBId(nIdx)
+{
+       return getBId(nIdx)+"C";
+}
+
+function getClosestTocPath(aPaths)
+{
+       var nMaxSimilarity=0;
+       var nThatIndex=-1;
+       var sPath=null;
+       if(aPaths.length==0) return sPath;
+       for(var i=0;i<aPaths.length;i++)
+       {
+               var nSimilarity=comparePath(gsCTPath,aPaths[i]);
+               if(nSimilarity>nMaxSimilarity)
+               {
+                       nMaxSimilarity=nSimilarity;
+                       nThatIndex=i;
+               }
+       }
+       if(nThatIndex!=-1)
+               sPath=aPaths[nThatIndex];
+       else
+               sPath=aPaths[0];
+       return sPath;
+}
+
+function comparePath(sPath1,sPath2)
+{
+       var nMaxSimilarity=0;
+       var nStartPos1=0;
+       var nPos1=-1;
+       var nStartPos2=0;
+       var nPos2=-1;
+       do{
+               var sCheck1=null;
+               var sCheck2=null;
+               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
+               if(nPos1!=-1)
+               {
+                       sCheck1=sPath1.substring(nStartPos1,nPos1);
+                       nStartPos1=nPos1+1;
+               }
+               else
+               {
+                       sCheck1=sPath1.substring(nStartPos1);
+                       nStartPos1=-1;
+               }
+               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
+               if(nPos1!=-1)
+               {
+                       sCheck2=sPath2.substring(nStartPos2,nPos2);
+                       nStartPos2=nPos2+1;
+               }
+               else
+               {
+                       sCheck2=sPath2.substring(nStartPos2);
+                       nStartPos2=-1;
+               }
+               if(sCheck1==sCheck2)
+                       nMaxSimilarity++;
+               else
+                       break;
+       }while(nStartPos1!=-1&&nStartPos2!=-1);
+       return nMaxSimilarity;
+}
+
+function getTocPaths(oTopicParam)
+{
+       var aRelTocPaths=oTopicParam.aPaths;
+       var aPaths=new Array();
+       for(var i=0;i<gaProj.length;i++)
+               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
+               {
+                       for(var j=0;j<aRelTocPaths.length;j++)
+                               for (var k=0;k<gaRoot[i].aRPath.length;k++)
+                               {
+                                       var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
+                                       aPaths[aPaths.length]=sPath.substring(1);
+                               }
+                       break;
+               }
+       return aPaths;
+}
+
+function syncInit()
+{
+       if(gsTP&&!gbNeedFillStub)
+       {
+               gInSync=true;
+               var obj=document.body;
+               var aIdList=new Array();
+               var nRet=expandToc(obj,gsTP,aIdList);
+               if(nRet!=-1)
+               {
+                       if(nRet==1)
+                       {
+                               if(aIdList.length)
+                                       for(var i=0;i<aIdList.length-1;i++)
+                                               ExpandIt2(aIdList[i],true);
+                               gsCTPath=gsTP;
+                               if(!gbIE55)
+                                       aIdList[aIdList.length-1].focus();
+                               else
+                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
+                       }
+                       var aPaths=gaBTPs;
+                       gsTP=null;
+                       gaBTPs=null;
+                       if(aPaths!=null)
+                       {
+                               var sPath=getClosestTocPath(aPaths);
+                               if(sPath!=null)
+                               {       
+                                       gsTP=sPath;             
+                                       setTimeout("syncInit()",1);
+                               }
+                       }
+               }
+               gInSync=false;
+       }
+}
+
+function loadToc()
+{
+       if(!gbLoadToc)
+       {
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
+               if(SendMessage(oResMsg)&&oResMsg.oParam)
+               {
+                       gbLoadToc=true;
+                       var oProj=oResMsg.oParam;
+                       gaProj=oProj.aProj;
+                       gbXML=oProj.bXML;
+                       load1B1();
+               }
+       }
+}
+
+function load1B1()
+{
+       if(gnLT+1<gaProj.length)
+               for(var i=gnLT+1;i<gaProj.length;i++)
+                       if(gaProj[i].sToc)
+                       {
+                               gbToc=true;
+                               gnLT=i;
+                               setTimeout("loadTocInfo()",1);
+                               return true;
+                       }
+       return false;
+}
+
+function loadTocInfo()
+{
+       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
+}
+
+function loadData2(sFile)
+{
+       if(gbXML)
+               loadDataXML(sFile);
+       else
+               loadData(sFile);
+}
+
+function projReady(sRoot,aProj)
+{
+       if(gaRoot.length<=gnLT||!gaRoot[gnLT])
+               gaRoot[gnLT]=new Object();
+       gaRoot[gnLT].sToc=sRoot;
+       
+       if(gnLT==0)
+       {
+               gaRoot[gnLT].aRPath=new Array();
+               gaRoot[gnLT].aRPath[0]=gsPathSplit;
+       }
+
+       updatePTPath(gnLT,aProj);
+
+       if(!((gnLT+1<gaProj.length)&&load1B1()))
+       {
+               gbReady=true;
+               if(gbIE4)
+                       setTimeout("loadImages();",1);
+               else
+                       setTimeout("loadTData();",1);
+       }
+}
+
+function loadTData()
+{
+       if(gaProj[0].sToc!="")
+       {
+               gbLData=true;
+               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
+               gbToc=false;
+               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
+       }
+}
+
+function updatePTPath(n,aProj)
+{
+       if(aProj)
+               for(var i=0;i<aProj.length;i++)
+               {
+                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
+                       for(var j=0;j<gaProj.length;j++)
+                               if(isSamePath(sFullPath,gaProj[j].sPPath))
+                               {
+                                       if(gaRoot.length<=j||!gaRoot[j])
+                                               gaRoot[j]=new Object();
+                                       if(!gaRoot[j].aRPath)
+                                               gaRoot[j].aRPath=new Array();
+
+                                       if(gaRoot[n].aRPath)
+                                               for(var k=0;k<gaRoot[n].aRPath.length;k++)
+                                               {
+                                                       var bDup=false;
+                                                       var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
+                                                       for(var l=0;l<gaRoot[j].aRPath.length;l++)
+                                                               if(gaRoot[j].aRPath[l]==sTFPath)
+                                                               {
+                                                                       bDup=true;
+                                                                       break;
+                                                               }
+                                                       if(!bDup)
+                                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
+                                               }
+                                       else
+                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
+                                       break;
+                               }
+               }
+}
+
+function onLoadXMLError()
+{
+       if(gbToc)
+       {
+               var sRoot="";
+               var aRProj=new Array();
+               projReady(sRoot,aRProj);
+       }
+       else
+       {
+               var aToc=new Array();
+               putData(aToc)
+       }
+}
+
+function putDataXML(xmlDoc,sDocPath)
+{
+       if(gbToc)
+       {
+               var tocNode=xmlDoc.getElementsByTagName("toc")[0];
+               if(tocNode)
+               {
+                       var sRoot=tocNode.getAttribute("root");
+                       var rmtProject=tocNode.getElementsByTagName("project");
+                       var aRProj=new Array();
+                       if(rmtProject.length>0)
+                       {
+                               for(var i=0;i<rmtProject.length;i++)
+                               {
+                                       aRProj[i]=new Object();
+                                       var sURL=rmtProject[i].getAttribute("url");
+                                       if(sURL)
+                                       {
+                                               if(sURL.lastIndexOf("/")!=sURL.length-1)
+                                                       sURL+="/";                                              
+                                       }
+                                       aRProj[i].sPPath=sURL;
+                                       aRProj[i].sRPath = "";
+                                       var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
+                                       if (oSubPath)
+                                       {
+                                               while (oSubPath)
+                                               {
+                                                       aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
+                                                       oSubPath = oSubPath.getElementsByTagName("subpath")[0];
+                                               }
+                                       }
+                                       else
+                                               aRProj[i].sRPath=rmtProject[i].getAttribute("path");
+                               }
+                       }
+                       projReady(sRoot,aRProj);
+               }
+       }
+       else
+       {
+               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
+               if(chunkNode)
+               {
+                       var aToc=new Array();
+                       processBook(chunkNode,aToc);
+                       putData(aToc);
+               }
+       }
+}
+
+function processBook(node,aToc)
+{
+       var i=0;
+       var entry=null;
+       var prevEntry=null;
+       var oChild=node.firstChild;
+       do{
+               if(oChild)
+               {
+                       if(oChild.nodeName.indexOf("#")!=0)
+                       {
+                               var sName=oChild.getAttribute("name");
+                               var sURL=oChild.getAttribute("url");
+                               var sRef=oChild.getAttribute("ref");
+                               var sTarget=oChild.getAttribute("target");
+                               var sIcons=oChild.getAttribute("images");
+                               var item=new Object();
+                               item.sItemName=sName;
+                               if(sTarget)
+                                       item.sTarget=sTarget;
+                               if(sIcons)
+                                       item.sIconRef=sIcons;
+                               if(sURL==null) sURL="";
+
+                               item.sItemURL=sURL;
+                               
+                               if(oChild.nodeName=="book")
+                               {
+                                       item.nType=1;
+                                       aToc[aToc.length]=item;
+                                       var nCurrPos=aToc.length;
+                                       processBook(oChild,aToc);
+                                       item.nContents=aToc.length-nCurrPos;
+                               }
+                               else if(oChild.nodeName=="item")
+                               {
+                                       item.nType=2;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                               else if(oChild.nodeName=="remoteitem")
+                               {
+                                       item.nType=16;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                               else if(oChild.nodeName=="project")
+                               {
+                                       if(sRef)
+                                       {
+                                               if(sRef.lastIndexOf("/")!=sRef.length-1)
+                                                       sRef+="/";                                              
+                                       }
+                                       item.nType=4;
+                                       item.sRefURL=sRef;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                               else if(oChild.nodeName=="chunk")
+                               {
+                                       item.nType=8;
+                                       item.sRefURL=sRef;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                       }
+               }
+               else
+                       break;
+               oChild=oChild.nextSibling;
+       }while(true);
+}
+
+function putData(aTocs)
+{
+       gaTocsNs61Fix=aTocs;
+       setTimeout("realPutData();",1);
+}
+
+function realPutData()
+{
+       removeLoadingDiv();
+       var aTocs=gaTocsNs61Fix;
+       if(!aTocs) return;
+       if(goChunk)
+       {
+               var n=gnMinIdx;
+               goChunk.nMI=gnMinIdx;
+               goChunk.aTocs=aTocs;
+               gnMinIdx+=aTocs.length;
+               if(gnInsIdx!=-1)
+               {
+                       var oObj=getElement(getPBId(gnInsIdx));
+                       if(oObj)
+                       {
+                               oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
+                               setTimeout("syncInit()",1);
+                       }
+               }
+               else{
+                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
+                       var oParam=new Object();
+                       oParam.oTocInfo=null;
+                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
+                       if(SendMessage(oMsg))
+                       {
+                               if(oMsg.oParam.oTocInfo)
+                                       syncWithPaths(oMsg.oParam.oTocInfo);
+                       }
+               }       
+       }
+       gbLData=false;
+       checkFillStub();
+}
+
+function syncWithPaths(oTopicParam)
+{
+       var aPaths=getTocPaths(oTopicParam);
+       if(gsTP)
+               gaBTPs=aPaths;
+       else{
+               var sPath=getClosestTocPath(aPaths);
+               if(sPath!=null)
+               {
+                       gsTP=sPath;
+                       setTimeout("syncInit()",1);
+               }
+       }
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+       {
+               document.body.background=gsBgImage;
+       }
+       if(gsBgColor&&gsBgColor.length>0)
+       {
+               document.body.bgColor=gsBgColor;
+       }
+       loadToc();
+       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
+       SendMessage(oMsg);
+}
+
+function loadImages()
+{
+       if(giBookClose)
+       {
+               gaImgs[gnImages]=giBookClose;
+               gnImages++;
+       }               
+       if(giBookOpen)
+       {
+               gaImgs[gnImages]=giBookOpen;
+               gnImages++;
+       }               
+       if(giBookItem)
+       {
+               gaImgs[gnImages]=giBookItem;
+               gnImages++;
+       }               
+       if(giURLItem)
+       {
+               gaImgs[gnImages]=giURLItem;
+               gnImages++;
+       }               
+       if(giNewBookClose)
+       {
+               gaImgs[gnImages]=giNewBookClose;
+               gnImages++;
+       }               
+       if(giNewBookOpen)
+       {
+               gaImgs[gnImages]=giNewBookOpen;
+               gnImages++;
+       }               
+       if(giNewBookItem)
+       {
+               gaImgs[gnImages]=giNewBookItem;
+               gnImages++;
+       }               
+       if(giNewURLItem)
+       {
+               gaImgs[gnImages]=giNewURLItem;
+               gnImages++;
+       }
+       if(gnImages>0)
+       {
+               setTimeout("loadDataAfter();",1000);
+               loadImage(gaImgs[0]);
+       }
+       else
+               loadDataAfter();
+}
+
+function loadImage(sURL)
+{
+       var oImg=new Image();
+       oImg.onload=checkImageLoading;
+       oImg.onerror=errorImageLoading;
+       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
+}
+
+function loadDataAfter()
+{
+       if(!gbLoadData)
+       {
+               gbLoadData=true;
+               loadTData();
+       }
+}
+
+function errorImageLoading()
+{
+       gnLoadedImages++;
+       if(gnImages==gnLoadedImages)
+               loadDataAfter();
+       else
+               loadImage(gaImgs[gnLoadedImages]);      
+}
+
+function checkImageLoading()
+{
+       gnLoadedImages++;
+       if(gnImages==gnLoadedImages)
+               loadDataAfter();
+       else
+               loadImage(gaImgs[gnLoadedImages]);      
+}
+
+function window_unload()
+{
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
+       UnRegisterListener2(this,WH_MSG_SYNCTOC);
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);
+}
+
+function onSendMessage(oMsg)
+{
+       if(oMsg)
+       {
+               var nMsgId=oMsg.nMessageId;
+               if(nMsgId==WH_MSG_PROJECTREADY)
+               {
+                       loadToc();
+               }
+               else if(nMsgId==WH_MSG_SYNCTOC)
+               {
+                       if(gbReady)
+                       {
+                               syncWithPaths(oMsg.oParam);
+                       }
+               }
+               else if(nMsgId==WH_MSG_SHOWTOC)
+               {
+                       if(!gbNav6)
+                               document.body.focus();
+               }
+       }
+       return true;
+}
+
+if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
+{
+       RegisterListener2(this,WH_MSG_PROJECTREADY);
+       RegisterListener2(this,WH_MSG_SYNCTOC);
+       RegisterListener2(this,WH_MSG_SHOWTOC);
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
+
+       window.onload=window_OnLoad;
+       window.onbeforeunload=window_BUnload;
+       window.onunload=window_unload;
+       gbWhTHost=true;
+}
+else
        document.location.reload();
\ No newline at end of file