-// 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+=" "+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\"> "+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+=" "+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\"> "+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