2 var gaHSLoad=new Array();
5 var gsLoadingDivID="LoadingDiv";
6 var gsLoadingMsg="Loading, click here to cancel...";
8 var gaTocs=new Array();
13 var gaRoot=new Array();
20 var gsBgColor="#ffffff";
27 var gsABgColor="#cccccc";
33 var giNewBookClose="";
39 var gaImgs=new Array();
42 var gaTocsNs61Fix=null;
44 var gBookItems=new Array();
47 var gbNeedFillStub=false;
50 function chunkInfoQueue()
52 this.aContent=new Array();
53 this.inQueue=function(cInfo)
55 this.aContent[this.aContent.length]=cInfo;
57 this.deQueue=function()
60 if(this.aContent.length>0)
62 cInfo=this.aContent[0];
63 for(var i=1;i<this.aContent.length;i++)
64 this.aContent[i-1]=this.aContent[i];
65 this.aContent.length--;
69 this.length=function()
71 return this.aContent.length;
75 var gchunkRequestQueue=new chunkInfoQueue();
77 function chunkInfo(nIdx, bLocal)
83 function setBackground(sBgImage)
88 function setBackgroundcolor(sBgColor)
93 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
95 var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
96 if(sType=="Normal") goFont=vFont;
97 else if(sType=="Hover") goHFont=vFont;
100 function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
102 function setMargin(sMargin){gsMargin=sMargin;}
104 function setIndent(sIndent){gsIndent=sIndent;}
106 function setIcon(sType,sURL)
108 if(sType=="BookOpen")
110 else if(sType=="BookClose")
112 else if(sType=="Item")
114 else if(sType=="RemoteItem")
116 else if(sType=="NewBookClose")
118 else if(sType=="NewBookOpen")
120 else if(sType=="NewItem")
122 else if(sType=="NewRemoteItem")
126 function bookItem(sTarget,sURL)
129 this.sTarget=sTarget;
131 this.sTarget="bsscright";
135 function addBookItem(sBookId,sTarget,sURL)
137 gBookItems[sBookId]=new bookItem(sTarget,sURL);
140 function tocChunk(sPPath,sDPath)
148 function addTocChunk(sPPath,sDPath)
150 var oChunk=new tocChunk(sPPath,sDPath);
151 gaTocs[gaTocs.length]=oChunk;
155 function isHSLoad(nIdx)
157 for(var i=0;i<gaHSLoad.length;i++)
158 if(gaHSLoad[i]==nIdx)
163 function setHSLoad(nIdx)
167 var len=gaHSLoad.length;
168 for(var i=0;i<len;i++)
178 function setHSUnLoad(nIdx)
182 for(var i=0;i<gaHSLoad.length;i++)
183 if(gaHSLoad[i]==nIdx)
191 function removeLoadingDiv()
193 var eLoadingDiv=getElement(gsLoadingDivID);
195 removeThis(eLoadingDiv);
198 function checkBookItem(nIdx)
202 var sBookId=getBookId(nIdx);
203 if(gBookItems[sBookId])
205 window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
210 function insertBookItems(nIdx,num)
213 var sChildBookId=getCBId(nIdx);
214 var eChildDiv=getElement(sChildBookId);
216 if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
217 (eChildDiv.all&&eChildDiv.all.length==0)){
218 var sHTML=writeBookItems(nIdx,num);
219 eChildDiv.innerHTML=sHTML;
220 setTimeout("syncInit()",1);
226 function isBookEmpty(nIdx)
228 var num=getItemContentsNum(nIdx);
235 var nItemType=getItemType(i);
240 else if(nItemType==4){
241 var sSrc=getRefURL(i);
242 var nProj=getProject(sSrc);
244 sSrc=gaRoot[nProj].sToc;
249 else if(nItemType==2||nItemType==16||nItemType==8)
256 function writeBook(nIdx)
258 var sIcon=getBookImage(nIdx,true);
259 var sName=_textToHtml(getItemName(nIdx));
260 sIcon=_textToHtml_nonbsp(sIcon);
262 var nType=getItemType(nIdx);
263 var bLocal=(nType==1);
264 var bLocalProject=(nType!=4);
266 var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
269 if (!isBookEmpty(nIdx))
271 sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
272 sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
273 sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
274 sHTML+=" "+sName+"</a></nobr></p></div>";
275 var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
277 addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
278 sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
285 sHTML+="stub></div>";
287 setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
292 function checkFillStub()
296 if(gchunkRequestQueue.length()>0)
298 var cInfo=gchunkRequestQueue.deQueue();
301 fillStub(cInfo.nIdx,cInfo.bLocal);
308 gbNeedFillStub=false;
309 setTimeout("syncInit()",1);
313 function fillStub(nIdx,bLocalProject)
318 var sObj=getElement(getPBId(nIdx));
321 tocExpandHelpSet(nIdx,bLocalProject);
322 gbNeedFillStub=false;
323 setTimeout("syncInit()",1);
326 setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
329 gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
332 function getBookId(nIdx){return "B_"+nIdx;}
334 function getItemId(nIdx){return "I_"+nIdx;}
336 function markBook(nIdx)
338 var obj=getElement(getItemId(nIdx));
340 obj=getElement(getBookId(nIdx));
344 setTimeout("delayMarkObj();",1);
350 function delayMarkObj()
359 function markObj(obj)
363 HighLightElement(obj,gsABgColor,"transparent");
364 var sPath=calTocPath(obj);
370 function markItem(nIdx)
372 var obj=getElement(getItemId(nIdx));
376 setTimeout("delayMarkObj();",1);
379 markObj(getElement(getItemId(nIdx)));
382 function calTocPath(obj)
384 var sPath=getInnerText2(obj);
385 var pObj=getParentNode(obj);
388 while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
391 var nId=getIdByCBId(pObj.id);
392 var sObj=getElement(getPBId(nId));
395 var objs=getItemsByBook(sObj);
396 for(var i=0;i<objs.length;i++)
398 var sText=getInnerText2(objs[i]);
401 sPath=sText+gsPathSplit+sPath;
406 pObj=getParentNode(pObj);
412 function writeAnItem(nIdx)
414 var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
415 var sIcon=getItemIcon(nIdx,0);
418 var nItemType=getItemType(nIdx);
420 sIcon=getItemImage(nIdx,false);
422 sIcon=getItemImage(nIdx,true);
424 sIcon=_textToHtml_nonbsp(sIcon);
425 var sName=_textToHtml(getItemName(nIdx));
426 var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
431 sAltString="Remote Page";
433 sHTML+="target=\""+sTarget+"\" ";
434 sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\"> "+sName+"</a></nobr></p>";
438 function writeBookItems(nIdx,num)
446 var nItemType=getItemType(i);
447 if(nItemType==1||nItemType==4||nItemType==8){
449 nCIdx+=getItemContentsNum(i);
451 else if(nItemType==2||nItemType==16){
452 sHTML+=writeAnItem(i);
460 function tocExpandHelpSet(nIdx,bLocal)
469 var oChunk=getChunk(nIdx);
472 goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
473 sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
477 sSrc=getRefURL(nIdx);
478 var nProj=getProject(sSrc);
481 sSrc=gaRoot[nProj].sToc;
483 goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
492 PrepareLoading(nIdx);
494 loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
504 function getProject(sSrc)
506 for(var i=0;i<gaProj.length;i++)
507 if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
512 function getPath(sPath)
516 sPath=_replaceSlash(sPath);
517 var nPosFile=sPath.lastIndexOf("/");
518 sPath=sPath.substring(0,nPosFile+1);
523 function isSamePath(sPath1,sPath2)
525 return (sPath1.toLowerCase()==sPath2.toLowerCase());
528 function PrepareLoading(nIdx)
533 var oObj=getElement(getPBId(gnInsIdx));
535 oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
539 function writeLoadingDiv(nIdx)
541 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>";
544 function getItemName(nIdx)
546 var oChunk=getChunk(nIdx);
548 return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
553 function getItemContentsNum(nIdx)
555 var oChunk=getChunk(nIdx);
557 return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
562 function getItemType(nIdx)
564 var oChunk=getChunk(nIdx);
566 return oChunk.aTocs[nIdx-oChunk.nMI].nType;
571 function getItemURL(nIdx)
573 var oChunk=getChunk(nIdx);
576 var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
577 if(!(sPath==null||sPath==""))
579 return _getFullPath(oChunk.sPPath,sPath);
585 function getRefURL(nIdx)
587 var oChunk=getChunk(nIdx);
590 var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
591 if(!(sPath==null||sPath==""))
593 return _getFullPath(oChunk.sPPath,sPath)
599 function getTopicTarget(nIdx)
601 var oChunk=getChunk(nIdx);
604 if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
605 return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
610 function getItemIcon(nIdx,nIconIdx)
612 var oChunk=getChunk(nIdx);
615 if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
617 var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
618 var nIndex=sIconRef.indexOf(";");
619 while(nIconIdx-->0&&nIndex!=-1)
621 sIconRef=sIconRef.substring(nIndex+1);
622 nIndex=sIconRef.indexOf(";");
627 sIconRef=sIconRef.substring(0,nIndex);
628 return _getFullPath(oChunk.sPPath,sIconRef)
635 function TocWriteClassStyle()
637 var sStyle="<STYLE TYPE='text/css'>\n";
639 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
641 sStyle+="body {border-top:black 1px solid;}\n";
642 sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
643 sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
644 sStyle+=".parent {margin-left:0pt;}\n";
645 sStyle+=".stub {margin-left:0pt;display:none}\n";
646 sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
647 sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
648 sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
649 sStyle+="A:active {background-color:"+gsABgColor+";}\n";
650 sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
652 document.write(sStyle);
655 function TocWriteFixedWidth(bBegin,nWidth)
657 if((gbIE4)&&(gbMac)&&(!gbIE5)){
659 document.write("<table width="+nWidth+" border=0><tr><td>");
661 document.write("</td></tr></table>");
665 function TocInitPage()
667 var tempColl=getItemsByBook(document.body);
668 if(tempColl.length>0)
672 function getItemsFromObj(obj)
674 var aAnchor=new Array();
675 var tempColl=getChildrenByTag(obj,"P");
676 if(tempColl&&tempColl.length>0)
678 var anobr=new Array();
679 for(var i=0;i<tempColl.length;i++)
681 var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
682 if(tempNobr&&tempNobr.length>0)
683 for(var j=0;j<tempNobr.length;j++)
684 anobr[anobr.length]=tempNobr[j];
686 for(var s=0;s<anobr.length;s++)
688 var tempAnchor=getChildrenByTag(anobr[s],"A");
689 if(tempAnchor&&tempAnchor.length>0)
690 for(var u=0;u<tempAnchor.length;u++)
691 aAnchor[aAnchor.length]=tempAnchor[u];
697 function getItemsByBook(obj)
699 var aAnchor=new Array();
700 var aTAnchor=getItemsFromObj(obj);
701 for(var i=0;i<aTAnchor.length;i++)
702 aAnchor[aAnchor.length]=aTAnchor[i];
703 var tempBook=getChildrenByTag(obj,"DIV");
704 if(tempBook&&tempBook.length>0)
705 for(var j=0;j<tempBook.length;j++)
707 var aTAnchorDiv=getItemsFromObj(tempBook[j]);
708 for(var s=0;s<aTAnchorDiv.length;s++)
709 aAnchor[aAnchor.length]=aTAnchorDiv[s];
714 function ExpandIt(nId)
717 ExpandIt2(nId,false);
720 function ExpandIt2(nId,bForceOpen)
722 var oC=TocExpand(nId,true,bForceOpen);
723 var nNewScroll=document.body.scrollTop;
724 if(oC.style.display=="block"){
725 var nTop=oC.offsetTop;
726 var nBottom=nTop+oC.offsetHeight;
727 if(document.body.scrollTop+document.body.clientHeight<nBottom){
728 nNewScroll=nBottom-document.body.clientHeight;
730 if(nBottom-nTop>document.body.clientHeight){
734 document.body.scrollTop=nNewScroll;
737 function TocExpand(nId,bChangeImg,bForceOpen)
739 var oDiv=getElement(getCBId(nId));
740 if(oDiv==null) return null;
742 var whichIm=document.images[getBId(nId)];
743 if((oDiv.style.display!="block")||bForceOpen){
744 oDiv.style.display="block";
746 var sPath=getPath(whichIm.src);
747 sPath=_getFullPath(sPath,getBookImage(nId,false));
751 oDiv.style.display="none";
753 var sPath=getPath(whichIm.src);
754 sPath=_getFullPath(sPath,getBookImage(nId,true));
758 this.parent.document.getElementById("tocIFrame").style.width="101%";
759 this.parent.document.getElementById("tocIFrame").style.width="100%";
765 function getChunkId(n)
768 for(var i=0;i<gaTocs.length;i++)
769 if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
774 if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
785 if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
786 gaTocs[gnCC+1].nMI>n))
799 function getBookImage(nIdx,bClosed)
801 var nIdx=bClosed?0:1;
802 var sIcon=getItemIcon(nIdx,nIdx);
808 return _getFullPath(gaProj[0].sPPath,sIcon);
811 function getItemImage(nIdx,bRemote)
813 var sIcon=getItemIcon(nIdx,0);
819 return _getFullPath(gaProj[0].sPPath,sIcon);
822 function getInnerText2(obj)
824 var sText=getInnerText(obj);
825 if(sText.length>0&&!gbOpera7)
826 sText=sText.substring(1);
830 function expandToc(oObj,sRest,aIdList)
832 var len=aIdList.length;
833 var nPos=sRest.indexOf(gsPathSplit);
836 sPart=sRest.substring(0,nPos);
837 sRest=sRest.substring(nPos+1);
842 var aTagAs=getItemsByBook(oObj);
843 for(var s=0;s<aTagAs.length;s++)
845 var sText=getInnerText2(aTagAs[s]);
848 aIdList[len]=aTagAs[s];
855 var aChildren=getChildrenByTag(oObj,"DIV");
856 for(var i=0;i<aChildren.length;i++)
858 var sPId=aChildren[i].id;
861 var sText=getInnerText2(aChildren[i]);
864 aIdList[len]=getIdByPBId(sPId);
865 var sCId=getCBId(aIdList[len]);
866 var oCObj=getElement(sCId);
869 if(oCObj.innerHTML=="")
871 var obj=getItemsByBook(aChildren[i]);
876 var sCommand=obj[0].getAttribute("onClick");
877 var nCommand=sCommand.indexOf(";");
878 sCommand=sCommand.substring(0,nCommand);
879 setTimeout(sCommand,1);
886 var nRet=expandToc(oCObj,sRest,aIdList);
895 function getIdByPBId(sPId)
897 return parseInt(sPId.substring(2,sPId.length-1));
900 function getIdByCBId(sCId)
902 return parseInt(sCId.substring(2,sCId.length-1));
907 return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
912 return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
915 function getBId(nIdx)
920 function getPBId(nIdx)
922 return getBId(nIdx)+"P";
925 function getCBId(nIdx)
927 return getBId(nIdx)+"C";
930 function getClosestTocPath(aPaths)
932 var nMaxSimilarity=0;
935 if(aPaths.length==0) return sPath;
936 for(var i=0;i<aPaths.length;i++)
938 var nSimilarity=comparePath(gsCTPath,aPaths[i]);
939 if(nSimilarity>nMaxSimilarity)
941 nMaxSimilarity=nSimilarity;
946 sPath=aPaths[nThatIndex];
952 function comparePath(sPath1,sPath2)
954 var nMaxSimilarity=0;
962 nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
965 sCheck1=sPath1.substring(nStartPos1,nPos1);
970 sCheck1=sPath1.substring(nStartPos1);
973 nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
976 sCheck2=sPath2.substring(nStartPos2,nPos2);
981 sCheck2=sPath2.substring(nStartPos2);
988 }while(nStartPos1!=-1&&nStartPos2!=-1);
989 return nMaxSimilarity;
992 function getTocPaths(oTopicParam)
994 var aRelTocPaths=oTopicParam.aPaths;
995 var aPaths=new Array();
996 for(var i=0;i<gaProj.length;i++)
997 if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
999 for(var j=0;j<aRelTocPaths.length;j++)
1000 for (var k=0;k<gaRoot[i].aRPath.length;k++)
1002 var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
1003 aPaths[aPaths.length]=sPath.substring(1);
1012 if(gsTP&&!gbNeedFillStub)
1015 var obj=document.body;
1016 var aIdList=new Array();
1017 var nRet=expandToc(obj,gsTP,aIdList);
1023 for(var i=0;i<aIdList.length-1;i++)
1024 ExpandIt2(aIdList[i],true);
1027 aIdList[aIdList.length-1].focus();
1029 HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
1036 var sPath=getClosestTocPath(aPaths);
1040 setTimeout("syncInit()",1);
1052 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
1053 if(SendMessage(oResMsg)&&oResMsg.oParam)
1056 var oProj=oResMsg.oParam;
1066 if(gnLT+1<gaProj.length)
1067 for(var i=gnLT+1;i<gaProj.length;i++)
1072 setTimeout("loadTocInfo()",1);
1078 function loadTocInfo()
1080 loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
1083 function loadData2(sFile)
1091 function projReady(sRoot,aProj)
1093 if(gaRoot.length<=gnLT||!gaRoot[gnLT])
1094 gaRoot[gnLT]=new Object();
1095 gaRoot[gnLT].sToc=sRoot;
1099 gaRoot[gnLT].aRPath=new Array();
1100 gaRoot[gnLT].aRPath[0]=gsPathSplit;
1103 updatePTPath(gnLT,aProj);
1105 if(!((gnLT+1<gaProj.length)&&load1B1()))
1109 setTimeout("loadImages();",1);
1111 setTimeout("loadTData();",1);
1115 function loadTData()
1117 if(gaProj[0].sToc!="")
1120 goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
1122 loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
1126 function updatePTPath(n,aProj)
1129 for(var i=0;i<aProj.length;i++)
1131 var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
1132 for(var j=0;j<gaProj.length;j++)
1133 if(isSamePath(sFullPath,gaProj[j].sPPath))
1135 if(gaRoot.length<=j||!gaRoot[j])
1136 gaRoot[j]=new Object();
1137 if(!gaRoot[j].aRPath)
1138 gaRoot[j].aRPath=new Array();
1140 if(gaRoot[n].aRPath)
1141 for(var k=0;k<gaRoot[n].aRPath.length;k++)
1144 var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
1145 for(var l=0;l<gaRoot[j].aRPath.length;l++)
1146 if(gaRoot[j].aRPath[l]==sTFPath)
1152 gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
1155 gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
1161 function onLoadXMLError()
1166 var aRProj=new Array();
1167 projReady(sRoot,aRProj);
1171 var aToc=new Array();
1176 function putDataXML(xmlDoc,sDocPath)
1180 var tocNode=xmlDoc.getElementsByTagName("toc")[0];
1183 var sRoot=tocNode.getAttribute("root");
1184 var rmtProject=tocNode.getElementsByTagName("project");
1185 var aRProj=new Array();
1186 if(rmtProject.length>0)
1188 for(var i=0;i<rmtProject.length;i++)
1190 aRProj[i]=new Object();
1191 var sURL=rmtProject[i].getAttribute("url");
1194 if(sURL.lastIndexOf("/")!=sURL.length-1)
1197 aRProj[i].sPPath=sURL;
1198 aRProj[i].sRPath = "";
1199 var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
1204 aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
1205 oSubPath = oSubPath.getElementsByTagName("subpath")[0];
1209 aRProj[i].sRPath=rmtProject[i].getAttribute("path");
1212 projReady(sRoot,aRProj);
1217 var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
1220 var aToc=new Array();
1221 processBook(chunkNode,aToc);
1227 function processBook(node,aToc)
1232 var oChild=node.firstChild;
1236 if(oChild.nodeName.indexOf("#")!=0)
1238 var sName=oChild.getAttribute("name");
1239 var sURL=oChild.getAttribute("url");
1240 var sRef=oChild.getAttribute("ref");
1241 var sTarget=oChild.getAttribute("target");
1242 var sIcons=oChild.getAttribute("images");
1243 var item=new Object();
1244 item.sItemName=sName;
1246 item.sTarget=sTarget;
1248 item.sIconRef=sIcons;
1249 if(sURL==null) sURL="";
1253 if(oChild.nodeName=="book")
1256 aToc[aToc.length]=item;
1257 var nCurrPos=aToc.length;
1258 processBook(oChild,aToc);
1259 item.nContents=aToc.length-nCurrPos;
1261 else if(oChild.nodeName=="item")
1265 aToc[aToc.length]=item;
1267 else if(oChild.nodeName=="remoteitem")
1271 aToc[aToc.length]=item;
1273 else if(oChild.nodeName=="project")
1277 if(sRef.lastIndexOf("/")!=sRef.length-1)
1283 aToc[aToc.length]=item;
1285 else if(oChild.nodeName=="chunk")
1290 aToc[aToc.length]=item;
1296 oChild=oChild.nextSibling;
1300 function putData(aTocs)
1302 gaTocsNs61Fix=aTocs;
1303 setTimeout("realPutData();",1);
1306 function realPutData()
1309 var aTocs=gaTocsNs61Fix;
1314 goChunk.nMI=gnMinIdx;
1315 goChunk.aTocs=aTocs;
1316 gnMinIdx+=aTocs.length;
1319 var oObj=getElement(getPBId(gnInsIdx));
1322 oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
1323 setTimeout("syncInit()",1);
1327 document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
1328 var oParam=new Object();
1329 oParam.oTocInfo=null;
1330 var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
1331 if(SendMessage(oMsg))
1333 if(oMsg.oParam.oTocInfo)
1334 syncWithPaths(oMsg.oParam.oTocInfo);
1342 function syncWithPaths(oTopicParam)
1344 var aPaths=getTocPaths(oTopicParam);
1348 var sPath=getClosestTocPath(aPaths);
1352 setTimeout("syncInit()",1);
1357 function window_OnLoad()
1359 if(gsBgImage&&gsBgImage.length>0)
1361 document.body.background=gsBgImage;
1363 if(gsBgColor&&gsBgColor.length>0)
1365 document.body.bgColor=gsBgColor;
1368 var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
1372 function loadImages()
1376 gaImgs[gnImages]=giBookClose;
1381 gaImgs[gnImages]=giBookOpen;
1386 gaImgs[gnImages]=giBookItem;
1391 gaImgs[gnImages]=giURLItem;
1396 gaImgs[gnImages]=giNewBookClose;
1401 gaImgs[gnImages]=giNewBookOpen;
1406 gaImgs[gnImages]=giNewBookItem;
1411 gaImgs[gnImages]=giNewURLItem;
1416 setTimeout("loadDataAfter();",1000);
1417 loadImage(gaImgs[0]);
1423 function loadImage(sURL)
1425 var oImg=new Image();
1426 oImg.onload=checkImageLoading;
1427 oImg.onerror=errorImageLoading;
1428 oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
1431 function loadDataAfter()
1440 function errorImageLoading()
1443 if(gnImages==gnLoadedImages)
1446 loadImage(gaImgs[gnLoadedImages]);
1449 function checkImageLoading()
1452 if(gnImages==gnLoadedImages)
1455 loadImage(gaImgs[gnLoadedImages]);
1458 function window_unload()
1460 UnRegisterListener2(this,WH_MSG_PROJECTREADY);
1461 UnRegisterListener2(this,WH_MSG_SYNCTOC);
1462 UnRegisterListener2(this,WH_MSG_SHOWTOC);
1465 function onSendMessage(oMsg)
1469 var nMsgId=oMsg.nMessageId;
1470 if(nMsgId==WH_MSG_PROJECTREADY)
1474 else if(nMsgId==WH_MSG_SYNCTOC)
1478 syncWithPaths(oMsg.oParam);
1481 else if(nMsgId==WH_MSG_SHOWTOC)
1484 document.body.focus();
1490 if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
1492 RegisterListener2(this,WH_MSG_PROJECTREADY);
1493 RegisterListener2(this,WH_MSG_SYNCTOC);
1494 RegisterListener2(this,WH_MSG_SHOWTOC);
1495 goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
1496 goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
1498 window.onload=window_OnLoad;
1499 window.onbeforeunload=window_BUnload;
1500 window.onunload=window_unload;
1504 document.location.reload();