--- /dev/null
+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 gbLoadToc=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
+\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
+ }\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
+ }\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
+\r
+function cancelLoading(nIdx)\r
+{\r
+ var oObj=getElement(getCBId(nIdx));\r
+ if(oObj)\r
+ {\r
+ oObj.innerHTML="";\r
+ setHSUnLoad(nIdx)\r
+ ExpandIt(nIdx);\r
+ }\r
+}\r
+\r
+function cancelAll()\r
+{\r
+ var eLoadingDivs=getElement(gsLoadingDivID);\r
+ if(eLoadingDivs)\r
+ cancelHSLoading(eLoadingDivs);\r
+}\r
+\r
+function cancelHSLoading(eLoadingDiv)\r
+{\r
+ var eParent=eLoadingDiv.parentElement;\r
+ if(eParent){\r
+ var sId=eParent.id;\r
+ sId=sId.substring(5);\r
+ var nIdx=parseInt(sId);\r
+ if(!isNaN(nIdx))\r
+ cancelLoading(nIdx)\r
+ }\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 writeBook(nIdx,bLocal)\r
+{\r
+ var sIcon=getBookImage(nIdx,true);\r
+ var sName=_textToHtml(getItemName(nIdx));\r
+ sIcon=_textToHtml_nonbsp(sIcon);\r
+ \r
+ var sHTML="<div id=\""+getPBId(nIdx)+"\" class=parent>";\r
+ sHTML+="<p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";\r
+\r
+ if(getItemType(nIdx)==1)\r
+ sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);\r
+ else\r
+ sHTML+="tocExpandHelpSet("+nIdx+","+bLocal;\r
+ sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";\r
+ var sURL=_textToHtml_nonbsp(getItemURL(nIdx));\r
+ if(sURL!="")\r
+ addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);\r
+ sHTML+=" "+sName+"</a></nobr></p></div><div id=\""+getCBId(nIdx)+"\" class=child></div>";\r
+ return sHTML;\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=getInnerText(obj).substring(1);\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=getInnerText(objs[i]);\r
+ \r
+ if(sText.length!=0)\r
+ {\r
+ sPath=sText.substring(1)+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){\r
+ sHTML+=writeBook(i); \r
+ nCIdx+=getItemContentsNum(i); \r
+ }\r
+ else if(nItemType==2||nItemType==16){\r
+ sHTML+=writeAnItem(i);\r
+ }else if(nItemType==4){\r
+ sHTML+=writeBook(i,false);\r
+ }else if(nItemType==8){\r
+ sHTML+=writeBook(i,true);\r
+ }\r
+ }\r
+ while(nCIdx<num);\r
+ }\r
+ return sHTML;\r
+}\r
+\r
+function tocExpandHelpSet(nIdx,bLocal)\r
+{\r
+ checkBookItem(nIdx);\r
+ cancelAll();\r
+ if(isHSLoad(nIdx))\r
+ ExpandIt(nIdx);\r
+ else{\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
+ goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);\r
+ sSrc=gaRoot[nProj].sToc;\r
+ }\r
+ else\r
+ goChunk=null;\r
+ }\r
+ if(goChunk)\r
+ {\r
+ PrepareLoading(nIdx);\r
+ ExpandIt(nIdx);\r
+ gbLoadToc=false;\r
+ loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);\r
+ }\r
+ }\r
+}\r
+\r
+function getProject(sSrc)\r
+{\r
+ for(var i=0;i<gaProj.length;i++)\r
+ {\r
+ if(isSamePath(getPath(sSrc),gaProj[i].sPPath))\r
+ {\r
+ return i;\r
+ }\r
+ }\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(getCBId(gnInsIdx));\r
+ if(oObj)\r
+ oObj.innerHTML=writeLoadingDiv(nIdx);\r
+ }\r
+}\r
+\r
+function writeLoadingDiv(nIdx)\r
+{\r
+ return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"cancelLoading("+nIdx+");\" 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+=".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
+ {\r
+ for(var j=0;j<tempNobr.length;j++)\r
+ anobr[anobr.length]=tempNobr[j];\r
+ }\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
+ {\r
+ for(var u=0;u<tempAnchor.length;u++)\r
+ aAnchor[aAnchor.length]=tempAnchor[u];\r
+ }\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
+ {\r
+ aAnchor[aAnchor.length]=aTAnchor[i];\r
+ }\r
+ var tempBook=getChildrenByTag(obj,"DIV");\r
+ if(tempBook&&tempBook.length>0)\r
+ {\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
+ {\r
+ aAnchor[aAnchor.length]=aTAnchorDiv[s];\r
+ }\r
+ }\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
+ if(gbIE4||gbNav6){\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
+\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 nCandidate=-1;\r
+ for(var i=0;i<gaTocs.length;i++){\r
+ if(gaTocs[i].nMI<=n){\r
+ nCandidate=i;\r
+ }\r
+ else\r
+ break;\r
+ }\r
+ if(nCandidate!=-1&&gaTocs[nCandidate].nMI!=-1)\r
+ return nCandidate;\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 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=getInnerText(aTagAs[s]);\r
+ if(sText.length>0)\r
+ sText=sText.substring(1);\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=getInnerText(aChildren[i]);\r
+ if(sText.substring(1)!=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(5,sPId.length-6));\r
+}\r
+\r
+function getIdByCBId(sCId)\r
+{\r
+ return parseInt(sCId.substring(5,sCId.length-5));\r
+}\r
+\r
+function isPBId(sId)\r
+{\r
+ return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Parent")==sId.length-6);\r
+}\r
+\r
+function isCBId(sId)\r
+{\r
+ return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Child")==sId.length-5);\r
+}\r
+\r
+function getBId(nIdx)\r
+{\r
+ return "Book_"+nIdx;\r
+}\r
+\r
+function getPBId(nIdx)\r
+{\r
+ return getBId(nIdx)+"Parent";\r
+}\r
+\r
+function getCBId(nIdx)\r
+{\r
+ return getBId(nIdx)+"Child";\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
+ {\r
+ sPath=aPaths[nThatIndex];\r
+ }\r
+ else\r
+ {\r
+ sPath=aPaths[0];\r
+ }\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
+ {\r
+ if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))\r
+ {\r
+ for(var j=0;j<aRelTocPaths.length;j++)\r
+ {\r
+ aPaths[j]=gaRoot[i].sRPath+aRelTocPaths[j];\r
+ aPaths[j]=aPaths[j].substring(1);\r
+ }\r
+ break;\r
+ }\r
+ }\r
+ return aPaths;\r
+}\r
+\r
+function syncInit()\r
+{\r
+ if(gsTP)\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
+ {\r
+ ExpandIt2(aIdList[i],true);\r
+ }\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(!gbReady)\r
+ {\r
+ var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
+ if(SendMessage(oResMsg)&&oResMsg.oParam)\r
+ {\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
+ {\r
+ for(var i=gnLT+1;i<gaProj.length;i++)\r
+ {\r
+ if(gaProj[i].sToc!=null&&gaProj[i].sToc!="")\r
+ {\r
+ gbLoadToc=true;\r
+ gnLT=i;\r
+ setTimeout("loadTocInfo()",1);\r
+ return true;\r
+ }\r
+ }\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
+ gaRoot[gnLT].sRPath=gsPathSplit;\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
+ goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);\r
+ gbLoadToc=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
+ {\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
+ {\r
+ if(isSamePath(sFullPath,gaProj[j].sPPath))\r
+ {\r
+ if(gaRoot.length<=j||!gaRoot[j])\r
+ gaRoot[j]=new Object();\r
+ if(!gaRoot[j].sRPath)\r
+ {\r
+ if(gaRoot[n].sRPath)\r
+ gaRoot[j].sRPath=gaRoot[n].sRPath+aProj[i].sRPath;\r
+ else\r
+ gaRoot[j].sRPath=aProj[i].sRPath;\r
+ }\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+function putDataXML(xmlDoc,sDocPath)\r
+{\r
+ if(gbLoadToc)\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
+ aRProj[i].sPPath=rmtProject[i].getAttribute("url");\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
+ 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
+ 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
+ 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(getCBId(gnInsIdx));\r
+ if(oObj)\r
+ {\r
+ oObj.innerHTML=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
+}\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
+ document.location.reload();\r
+\r