1 var gaHSLoad=new Array();
\r
4 var gsLoadingDivID="LoadingDiv";
\r
5 var gsLoadingMsg="Loading, click here to cancel...";
\r
7 var gaTocs=new Array();
\r
10 var gbLoadToc=false;
\r
12 var gaRoot=new Array();
\r
18 var gsPathSplit="\n";
\r
19 var gsBgColor="#ffffff";
\r
25 var gsIndent="15pt";
\r
26 var gsABgColor="#cccccc";
\r
32 var giNewBookClose="";
\r
33 var giNewBookOpen="";
\r
34 var giNewBookItem="";
\r
35 var giNewURLItem="";
\r
37 var gnLoadedImages=0;
\r
38 var gaImgs=new Array();
\r
39 var gbLoadData=false;
\r
41 var gaTocsNs61Fix=null;
\r
42 var gbWhTHost=false;
\r
43 var gBookItems=new Array();
\r
46 function setBackground(sBgImage)
\r
51 function setBackgroundcolor(sBgColor)
\r
56 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
\r
58 var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
\r
59 if(sType=="Normal") goFont=vFont;
\r
60 else if(sType=="Hover") goHFont=vFont;
\r
63 function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
\r
65 function setMargin(sMargin){gsMargin=sMargin;}
\r
67 function setIndent(sIndent){gsIndent=sIndent;}
\r
69 function setIcon(sType,sURL)
\r
71 if(sType=="BookOpen")
\r
73 else if(sType=="BookClose")
\r
75 else if(sType=="Item")
\r
77 else if(sType=="RemoteItem")
\r
79 else if(sType=="NewBookClose")
\r
80 giNewBookClose=sURL;
\r
81 else if(sType=="NewBookOpen")
\r
83 else if(sType=="NewItem")
\r
85 else if(sType=="NewRemoteItem")
\r
89 function bookItem(sTarget, sURL)
\r
92 this.sTarget=sTarget;
\r
94 this.sTarget="bsscright";
\r
98 function addBookItem(sBookId, sTarget, sURL)
\r
100 gBookItems[sBookId] = new bookItem(sTarget, sURL);
\r
103 function tocChunk(sPPath,sDPath)
\r
105 this.sPPath=sPPath;
\r
106 this.sDPath=sDPath;
\r
111 function addTocChunk(sPPath,sDPath)
\r
113 var oChunk=new tocChunk(sPPath,sDPath);
\r
114 gaTocs[gaTocs.length]=oChunk;
\r
118 function isHSLoad(nIdx)
\r
120 for(var i=0;i<gaHSLoad.length;i++){
\r
121 if(gaHSLoad[i]==nIdx)
\r
127 function setHSLoad(nIdx)
\r
129 if(!isHSLoad(nIdx))
\r
131 var len=gaHSLoad.length;
\r
132 for(var i=0;i<len;i++){
\r
133 if(gaHSLoad[i]==-1)
\r
139 gaHSLoad[len]=nIdx;
\r
143 function setHSUnLoad(nIdx)
\r
147 for(var i=0;i<gaHSLoad.length;i++){
\r
148 if(gaHSLoad[i]==nIdx)
\r
157 function cancelLoading(nIdx)
\r
159 var oObj=getElement(getCBId(nIdx));
\r
168 function cancelAll()
\r
170 var eLoadingDivs=getElement(gsLoadingDivID);
\r
172 cancelHSLoading(eLoadingDivs);
\r
175 function cancelHSLoading(eLoadingDiv)
\r
177 var eParent=eLoadingDiv.parentElement;
\r
179 var sId=eParent.id;
\r
180 sId=sId.substring(5);
\r
181 var nIdx=parseInt(sId);
\r
183 cancelLoading(nIdx)
\r
187 function checkBookItem(nIdx)
\r
191 var sBookId=getBookId(nIdx);
\r
192 if(gBookItems[sBookId])
\r
194 window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
\r
199 function insertBookItems(nIdx,num)
\r
201 checkBookItem(nIdx);
\r
202 var sChildBookId=getCBId(nIdx);
\r
203 var eChildDiv=getElement(sChildBookId);
\r
205 if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
\r
206 (eChildDiv.all&&eChildDiv.all.length==0)){
\r
207 var sHTML=writeBookItems(nIdx,num);
\r
208 eChildDiv.innerHTML=sHTML;
\r
209 setTimeout("syncInit()",1);
\r
215 function writeBook(nIdx,bLocal)
\r
217 var sIcon=getBookImage(nIdx,true);
\r
218 var sName=_textToHtml(getItemName(nIdx));
\r
219 sIcon=_textToHtml_nonbsp(sIcon);
\r
221 var sHTML="<div id=\""+getPBId(nIdx)+"\" class=parent>";
\r
222 sHTML+="<p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
\r
224 if(getItemType(nIdx)==1)
\r
225 sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
\r
227 sHTML+="tocExpandHelpSet("+nIdx+","+bLocal;
\r
228 sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
\r
229 var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
\r
231 addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
\r
232 sHTML+=" "+sName+"</a></nobr></p></div><div id=\""+getCBId(nIdx)+"\" class=child></div>";
\r
236 function getBookId(nIdx){return "B_"+nIdx;}
\r
238 function getItemId(nIdx){return "I_"+nIdx;}
\r
240 function markBook(nIdx)
\r
242 var obj=getElement(getItemId(nIdx));
\r
244 obj=getElement(getBookId(nIdx));
\r
248 setTimeout("delayMarkObj();",1);
\r
254 function delayMarkObj()
\r
263 function markObj(obj)
\r
267 HighLightElement(obj,gsABgColor,"transparent");
\r
268 var sPath=calTocPath(obj);
\r
269 if(gsCTPath!=sPath)
\r
274 function markItem(nIdx)
\r
276 var obj=getElement(getItemId(nIdx));
\r
280 setTimeout("delayMarkObj();",1);
\r
283 markObj(getElement(getItemId(nIdx)));
\r
286 function calTocPath(obj)
\r
288 var sPath=getInnerText(obj).substring(1);
\r
289 var pObj=getParentNode(obj);
\r
292 while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
\r
295 var nId=getIdByCBId(pObj.id);
\r
296 var sObj=getElement(getPBId(nId));
\r
299 var objs=getItemsByBook(sObj);
\r
300 for(var i=0;i<objs.length;i++)
\r
302 var sText=getInnerText(objs[i]);
\r
304 if(sText.length!=0)
\r
306 sPath=sText.substring(1)+gsPathSplit+sPath;
\r
311 pObj=getParentNode(pObj);
\r
313 }while(pObj!=null);
\r
317 function writeAnItem(nIdx)
\r
319 var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
\r
320 var sIcon=getItemIcon(nIdx,0);
\r
323 var nItemType=getItemType(nIdx);
\r
325 sIcon=getItemImage(nIdx,false);
\r
327 sIcon=getItemImage(nIdx,true);
\r
329 sIcon=_textToHtml_nonbsp(sIcon);
\r
330 var sName=_textToHtml(getItemName(nIdx));
\r
331 var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
\r
336 sAltString="Remote Page";
\r
338 sHTML+="target=\""+sTarget+"\" ";
\r
339 sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\"> "+sName+"</a></nobr></p>";
\r
343 function writeBookItems(nIdx,num)
\r
351 var nItemType=getItemType(i);
\r
353 sHTML+=writeBook(i);
\r
354 nCIdx+=getItemContentsNum(i);
\r
356 else if(nItemType==2||nItemType==16){
\r
357 sHTML+=writeAnItem(i);
\r
358 }else if(nItemType==4){
\r
359 sHTML+=writeBook(i,false);
\r
360 }else if(nItemType==8){
\r
361 sHTML+=writeBook(i,true);
\r
369 function tocExpandHelpSet(nIdx,bLocal)
\r
371 checkBookItem(nIdx);
\r
379 var oChunk=getChunk(nIdx);
\r
382 goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
\r
383 sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
\r
387 sSrc=getRefURL(nIdx);
\r
388 var nProj=getProject(sSrc);
\r
391 goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
\r
392 sSrc=gaRoot[nProj].sToc;
\r
399 PrepareLoading(nIdx);
\r
402 loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
\r
407 function getProject(sSrc)
\r
409 for(var i=0;i<gaProj.length;i++)
\r
411 if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
\r
419 function getPath(sPath)
\r
423 sPath=_replaceSlash(sPath);
\r
424 var nPosFile=sPath.lastIndexOf("/");
\r
425 sPath=sPath.substring(0,nPosFile+1);
\r
430 function isSamePath(sPath1,sPath2)
\r
432 return (sPath1.toLowerCase()==sPath2.toLowerCase());
\r
435 function PrepareLoading(nIdx)
\r
440 var oObj=getElement(getCBId(gnInsIdx));
\r
442 oObj.innerHTML=writeLoadingDiv(nIdx);
\r
446 function writeLoadingDiv(nIdx)
\r
448 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
451 function getItemName(nIdx)
\r
453 var oChunk=getChunk(nIdx);
\r
455 return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
\r
460 function getItemContentsNum(nIdx)
\r
462 var oChunk=getChunk(nIdx);
\r
464 return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
\r
469 function getItemType(nIdx)
\r
471 var oChunk=getChunk(nIdx);
\r
473 return oChunk.aTocs[nIdx-oChunk.nMI].nType;
\r
478 function getItemURL(nIdx)
\r
480 var oChunk=getChunk(nIdx);
\r
483 var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
\r
484 if(!(sPath==null||sPath==""))
\r
486 return _getFullPath(oChunk.sPPath,sPath);
\r
492 function getRefURL(nIdx)
\r
494 var oChunk=getChunk(nIdx);
\r
497 var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
\r
498 if(!(sPath==null||sPath==""))
\r
500 return _getFullPath(oChunk.sPPath,sPath)
\r
506 function getTopicTarget(nIdx)
\r
508 var oChunk=getChunk(nIdx);
\r
511 if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
\r
512 return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
\r
517 function getItemIcon(nIdx,nIconIdx)
\r
519 var oChunk=getChunk(nIdx);
\r
522 if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
\r
524 var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
\r
525 var nIndex=sIconRef.indexOf(";");
\r
526 while(nIconIdx-->0&&nIndex!=-1)
\r
528 sIconRef=sIconRef.substring(nIndex+1);
\r
529 nIndex=sIconRef.indexOf(";");
\r
534 sIconRef=sIconRef.substring(0,nIndex);
\r
535 return _getFullPath(oChunk.sPPath,sIconRef)
\r
542 function TocWriteClassStyle()
\r
544 var sStyle="<STYLE TYPE='text/css'>\n";
\r
546 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
\r
548 sStyle+="body {border-top:black 1px solid;}\n";
\r
549 sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
\r
550 sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
\r
551 sStyle+=".parent {margin-left:0pt;}\n";
\r
552 sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
\r
553 sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
\r
554 sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
\r
555 sStyle+="A:active {background-color:"+gsABgColor+";}\n";
\r
556 sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
\r
557 sStyle+="</STYLE>";
\r
558 document.write(sStyle);
\r
561 function TocWriteFixedWidth(bBegin,nWidth)
\r
563 if((gbIE4)&&(gbMac)&&(!gbIE5)){
\r
565 document.write("<table width="+nWidth+" border=0><tr><td>");
\r
567 document.write("</td></tr></table>");
\r
571 function TocInitPage()
\r
573 var tempColl=getItemsByBook(document.body);
\r
574 if(tempColl.length>0)
\r
575 tempColl[0].focus();
\r
578 function getItemsFromObj(obj)
\r
580 var aAnchor=new Array();
\r
581 var tempColl=getChildrenByTag(obj,"P");
\r
582 if(tempColl&&tempColl.length>0)
\r
584 var anobr=new Array();
\r
585 for(var i=0;i<tempColl.length;i++)
\r
587 var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
\r
588 if(tempNobr&&tempNobr.length>0)
\r
590 for(var j=0;j<tempNobr.length;j++)
\r
591 anobr[anobr.length]=tempNobr[j];
\r
594 for(var s=0;s<anobr.length;s++)
\r
596 var tempAnchor=getChildrenByTag(anobr[s],"A");
\r
597 if(tempAnchor&&tempAnchor.length>0)
\r
599 for(var u=0;u<tempAnchor.length;u++)
\r
600 aAnchor[aAnchor.length]=tempAnchor[u];
\r
607 function getItemsByBook(obj)
\r
609 var aAnchor=new Array();
\r
610 var aTAnchor=getItemsFromObj(obj);
\r
611 for(var i=0;i<aTAnchor.length;i++)
\r
613 aAnchor[aAnchor.length]=aTAnchor[i];
\r
615 var tempBook=getChildrenByTag(obj,"DIV");
\r
616 if(tempBook&&tempBook.length>0)
\r
618 for(var j=0;j<tempBook.length;j++)
\r
620 var aTAnchorDiv=getItemsFromObj(tempBook[j]);
\r
621 for(var s=0;s<aTAnchorDiv.length;s++)
\r
623 aAnchor[aAnchor.length]=aTAnchorDiv[s];
\r
630 function ExpandIt(nId)
\r
633 ExpandIt2(nId,false);
\r
636 function ExpandIt2(nId,bForceOpen)
\r
639 var oC=TocExpand(nId,true,bForceOpen);
\r
640 var nNewScroll=document.body.scrollTop;
\r
641 if(oC.style.display=="block"){
\r
642 var nTop=oC.offsetTop;
\r
643 var nBottom=nTop+oC.offsetHeight;
\r
644 if(document.body.scrollTop+document.body.clientHeight<nBottom){
\r
645 nNewScroll=nBottom-document.body.clientHeight;
\r
647 if(nBottom-nTop>document.body.clientHeight){
\r
648 nNewScroll=nTop-20;
\r
651 document.body.scrollTop=nNewScroll;
\r
655 function TocExpand(nId,bChangeImg,bForceOpen)
\r
657 var oDiv=getElement(getCBId(nId));
\r
658 if(oDiv==null) return null;
\r
660 var whichIm=document.images[getBId(nId)];
\r
661 if((oDiv.style.display!="block")||bForceOpen){
\r
662 oDiv.style.display="block";
\r
664 var sPath=getPath(whichIm.src);
\r
665 sPath=_getFullPath(sPath,getBookImage(nId,false));
\r
666 whichIm.src=sPath;
\r
669 oDiv.style.display="none";
\r
671 var sPath=getPath(whichIm.src);
\r
672 sPath=_getFullPath(sPath,getBookImage(nId,true));
\r
676 this.parent.document.getElementById("tocIFrame").style.width="101%";
\r
677 this.parent.document.getElementById("tocIFrame").style.width="100%";
\r
683 function getChunkId(n)
\r
686 for(var i=0;i<gaTocs.length;i++){
\r
687 if(gaTocs[i].nMI<=n){
\r
693 if(nCandidate!=-1&&gaTocs[nCandidate].nMI!=-1)
\r
699 function getChunk(n)
\r
701 if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
\r
702 gaTocs[gnCC+1].nMI>n))
\r
704 return gaTocs[gnCC];
\r
707 gnCC=getChunkId(n);
\r
709 return gaTocs[gnCC];
\r
715 function getBookImage(nIdx,bClosed)
\r
717 var nIdx=bClosed?0:1;
\r
718 var sIcon=getItemIcon(nIdx,nIdx);
\r
724 return _getFullPath(gaProj[0].sPPath,sIcon);
\r
727 function getItemImage(nIdx,bRemote)
\r
729 var sIcon=getItemIcon(nIdx,0);
\r
735 return _getFullPath(gaProj[0].sPPath,sIcon);
\r
738 function expandToc(oObj,sRest,aIdList)
\r
740 var len=aIdList.length;
\r
741 var nPos=sRest.indexOf(gsPathSplit);
\r
744 sPart=sRest.substring(0,nPos);
\r
745 sRest=sRest.substring(nPos+1);
\r
750 var aTagAs=getItemsByBook(oObj);
\r
751 for(var s=0;s<aTagAs.length;s++)
\r
753 var sText=getInnerText(aTagAs[s]);
\r
755 sText=sText.substring(1);
\r
758 aIdList[len]=aTagAs[s];
\r
765 var aChildren=getChildrenByTag(oObj,"DIV");
\r
766 for(var i=0;i<aChildren.length;i++)
\r
768 var sPId=aChildren[i].id;
\r
771 var sText=getInnerText(aChildren[i]);
\r
772 if(sText.substring(1)!=sPart)
\r
774 aIdList[len]=getIdByPBId(sPId);
\r
775 var sCId=getCBId(aIdList[len]);
\r
776 var oCObj=getElement(sCId);
\r
779 if(oCObj.innerHTML=="")
\r
781 var obj=getItemsByBook(aChildren[i]);
\r
786 var sCommand=obj[0].getAttribute("onClick");
\r
787 var nCommand=sCommand.indexOf(";");
\r
788 sCommand=sCommand.substring(0,nCommand);
\r
789 setTimeout(sCommand,1);
\r
796 var nRet=expandToc(oCObj,sRest,aIdList);
\r
801 aIdList.length=len;
\r
805 function getIdByPBId(sPId)
\r
807 return parseInt(sPId.substring(5,sPId.length-6));
\r
810 function getIdByCBId(sCId)
\r
812 return parseInt(sCId.substring(5,sCId.length-5));
\r
815 function isPBId(sId)
\r
817 return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Parent")==sId.length-6);
\r
820 function isCBId(sId)
\r
822 return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Child")==sId.length-5);
\r
825 function getBId(nIdx)
\r
827 return "Book_"+nIdx;
\r
830 function getPBId(nIdx)
\r
832 return getBId(nIdx)+"Parent";
\r
835 function getCBId(nIdx)
\r
837 return getBId(nIdx)+"Child";
\r
840 function getClosestTocPath(aPaths)
\r
842 var nMaxSimilarity=0;
\r
845 if(aPaths.length==0) return sPath;
\r
846 for(var i=0;i<aPaths.length;i++)
\r
848 var nSimilarity=comparePath(gsCTPath,aPaths[i]);
\r
849 if(nSimilarity>nMaxSimilarity)
\r
851 nMaxSimilarity=nSimilarity;
\r
857 sPath=aPaths[nThatIndex];
\r
866 function comparePath(sPath1,sPath2)
\r
868 var nMaxSimilarity=0;
\r
876 nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
\r
879 sCheck1=sPath1.substring(nStartPos1,nPos1);
\r
880 nStartPos1=nPos1+1;
\r
884 sCheck1=sPath1.substring(nStartPos1);
\r
887 nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
\r
890 sCheck2=sPath2.substring(nStartPos2,nPos2);
\r
891 nStartPos2=nPos2+1;
\r
895 sCheck2=sPath2.substring(nStartPos2);
\r
898 if(sCheck1==sCheck2)
\r
902 }while(nStartPos1!=-1&&nStartPos2!=-1);
\r
903 return nMaxSimilarity;
\r
906 function getTocPaths(oTopicParam)
\r
908 var aRelTocPaths=oTopicParam.aPaths;
\r
909 var aPaths=new Array();
\r
910 for(var i=0;i<gaProj.length;i++)
\r
912 if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
\r
914 for(var j=0;j<aRelTocPaths.length;j++)
\r
916 aPaths[j]=gaRoot[i].sRPath+aRelTocPaths[j];
\r
917 aPaths[j]=aPaths[j].substring(1);
\r
925 function syncInit()
\r
930 var obj=document.body;
\r
931 var aIdList=new Array();
\r
932 var nRet=expandToc(obj,gsTP,aIdList);
\r
938 for(var i=0;i<aIdList.length-1;i++)
\r
940 ExpandIt2(aIdList[i],true);
\r
944 aIdList[aIdList.length-1].focus();
\r
946 HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
\r
953 var sPath=getClosestTocPath(aPaths);
\r
957 setTimeout("syncInit()",1);
\r
969 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
\r
970 if(SendMessage(oResMsg)&&oResMsg.oParam)
\r
972 var oProj=oResMsg.oParam;
\r
973 gaProj=oProj.aProj;
\r
982 if(gnLT+1<gaProj.length)
\r
984 for(var i=gnLT+1;i<gaProj.length;i++)
\r
986 if(gaProj[i].sToc!=null&&gaProj[i].sToc!="")
\r
990 setTimeout("loadTocInfo()",1);
\r
998 function loadTocInfo()
\r
1000 loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
\r
1003 function loadData2(sFile)
\r
1006 loadDataXML(sFile);
\r
1011 function projReady(sRoot,aProj)
\r
1013 if(gaRoot.length<=gnLT||!gaRoot[gnLT])
\r
1014 gaRoot[gnLT]=new Object();
\r
1015 gaRoot[gnLT].sToc=sRoot;
\r
1018 gaRoot[gnLT].sRPath=gsPathSplit;
\r
1020 updatePTPath(gnLT,aProj);
\r
1022 if(!((gnLT+1<gaProj.length)&&load1B1()))
\r
1026 setTimeout("loadImages();",1);
\r
1028 setTimeout("loadTData();",1);
\r
1032 function loadTData()
\r
1034 if(gaProj[0].sToc!="")
\r
1036 goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
\r
1038 loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
\r
1042 function updatePTPath(n,aProj)
\r
1046 for(var i=0;i<aProj.length;i++)
\r
1048 var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
\r
1049 for(var j=0;j<gaProj.length;j++)
\r
1051 if(isSamePath(sFullPath,gaProj[j].sPPath))
\r
1053 if(gaRoot.length<=j||!gaRoot[j])
\r
1054 gaRoot[j]=new Object();
\r
1055 if(!gaRoot[j].sRPath)
\r
1057 if(gaRoot[n].sRPath)
\r
1058 gaRoot[j].sRPath=gaRoot[n].sRPath+aProj[i].sRPath;
\r
1060 gaRoot[j].sRPath=aProj[i].sRPath;
\r
1069 function putDataXML(xmlDoc,sDocPath)
\r
1073 var tocNode=xmlDoc.getElementsByTagName("toc")[0];
\r
1076 var sRoot=tocNode.getAttribute("root");
\r
1077 var rmtProject=tocNode.getElementsByTagName("project");
\r
1078 var aRProj=new Array();
\r
1079 if(rmtProject.length>0)
\r
1081 for(var i=0;i<rmtProject.length;i++)
\r
1083 aRProj[i]=new Object();
\r
1084 aRProj[i].sPPath=rmtProject[i].getAttribute("url");
\r
1085 aRProj[i].sRPath=rmtProject[i].getAttribute("path");
\r
1088 projReady(sRoot,aRProj);
\r
1093 var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
\r
1096 var aToc=new Array();
\r
1097 processBook(chunkNode,aToc);
\r
1103 function processBook(node,aToc)
\r
1107 var prevEntry=null;
\r
1108 var oChild=node.firstChild;
\r
1112 if(oChild.nodeName.indexOf("#")!=0)
\r
1114 var sName=oChild.getAttribute("name");
\r
1115 var sURL=oChild.getAttribute("url");
\r
1116 var sRef=oChild.getAttribute("ref");
\r
1117 var sTarget=oChild.getAttribute("target");
\r
1118 var sIcons=oChild.getAttribute("images");
\r
1119 var item=new Object();
\r
1120 item.sItemName=sName;
\r
1122 item.sTarget=sTarget;
\r
1124 item.sIconRef=sIcons;
\r
1125 if(sURL==null) sURL="";
\r
1126 item.sItemURL=sURL;
\r
1128 if(oChild.nodeName=="book")
\r
1131 aToc[aToc.length]=item;
\r
1132 var nCurrPos=aToc.length;
\r
1133 processBook(oChild,aToc);
\r
1134 item.nContents=aToc.length-nCurrPos;
\r
1136 else if(oChild.nodeName=="item")
\r
1140 aToc[aToc.length]=item;
\r
1142 else if(oChild.nodeName=="remoteitem")
\r
1146 aToc[aToc.length]=item;
\r
1148 else if(oChild.nodeName=="project")
\r
1151 item.sRefURL=sRef;
\r
1153 aToc[aToc.length]=item;
\r
1155 else if(oChild.nodeName=="chunk")
\r
1158 item.sRefURL=sRef;
\r
1160 aToc[aToc.length]=item;
\r
1166 oChild=oChild.nextSibling;
\r
1170 function putData(aTocs)
\r
1172 gaTocsNs61Fix=aTocs;
\r
1173 setTimeout("realPutData();",1);
\r
1176 function realPutData()
\r
1178 var aTocs=gaTocsNs61Fix;
\r
1179 if(!aTocs) return;
\r
1183 goChunk.nMI=gnMinIdx;
\r
1184 goChunk.aTocs=aTocs;
\r
1185 gnMinIdx+=aTocs.length;
\r
1188 var oObj=getElement(getCBId(gnInsIdx));
\r
1191 oObj.innerHTML=writeBookItems(n-1,aTocs.length);
\r
1192 setTimeout("syncInit()",1);
\r
1196 document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
\r
1197 var oParam=new Object();
\r
1198 oParam.oTocInfo=null;
\r
1199 var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
\r
1200 if(SendMessage(oMsg))
\r
1202 if (oMsg.oParam.oTocInfo)
\r
1203 syncWithPaths(oMsg.oParam.oTocInfo);
\r
1209 function syncWithPaths(oTopicParam)
\r
1211 var aPaths=getTocPaths(oTopicParam);
\r
1215 var sPath=getClosestTocPath(aPaths);
\r
1219 setTimeout("syncInit()",1);
\r
1224 function window_OnLoad()
\r
1226 if(gsBgImage&&gsBgImage.length>0)
\r
1228 document.body.background=gsBgImage;
\r
1230 if(gsBgColor&&gsBgColor.length>0)
\r
1232 document.body.bgColor=gsBgColor;
\r
1235 var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
\r
1236 SendMessage(oMsg);
\r
1239 function loadImages()
\r
1243 gaImgs[gnImages]=giBookClose;
\r
1248 gaImgs[gnImages]=giBookOpen;
\r
1253 gaImgs[gnImages]=giBookItem;
\r
1258 gaImgs[gnImages]=giURLItem;
\r
1261 if(giNewBookClose)
\r
1263 gaImgs[gnImages]=giNewBookClose;
\r
1268 gaImgs[gnImages]=giNewBookOpen;
\r
1273 gaImgs[gnImages]=giNewBookItem;
\r
1278 gaImgs[gnImages]=giNewURLItem;
\r
1283 setTimeout("loadDataAfter();",1000);
\r
1284 loadImage(gaImgs[0]);
\r
1290 function loadImage(sURL)
\r
1292 var oImg=new Image();
\r
1293 oImg.onload=checkImageLoading;
\r
1294 oImg.onerror=errorImageLoading;
\r
1295 oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
\r
1298 function loadDataAfter()
\r
1307 function errorImageLoading()
\r
1310 if(gnImages==gnLoadedImages)
\r
1313 loadImage(gaImgs[gnLoadedImages]);
\r
1316 function checkImageLoading()
\r
1319 if(gnImages==gnLoadedImages)
\r
1322 loadImage(gaImgs[gnLoadedImages]);
\r
1325 function window_unload()
\r
1327 UnRegisterListener2(this,WH_MSG_PROJECTREADY);
\r
1328 UnRegisterListener2(this,WH_MSG_SYNCTOC);
\r
1329 UnRegisterListener2(this,WH_MSG_SHOWTOC);
\r
1332 function onSendMessage(oMsg)
\r
1336 var nMsgId=oMsg.nMessageId;
\r
1337 if(nMsgId==WH_MSG_PROJECTREADY)
\r
1341 else if(nMsgId==WH_MSG_SYNCTOC)
\r
1345 syncWithPaths(oMsg.oParam);
\r
1348 else if(nMsgId==WH_MSG_SHOWTOC)
\r
1351 document.body.focus();
\r
1357 if (window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
\r
1359 RegisterListener2(this,WH_MSG_PROJECTREADY);
\r
1360 RegisterListener2(this,WH_MSG_SYNCTOC);
\r
1361 RegisterListener2(this,WH_MSG_SHOWTOC);
\r
1362 goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
\r
1363 goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
\r
1365 window.onload=window_OnLoad;
\r
1366 window.onbeforeunload=window_BUnload;
\r
1367 window.onunload=window_unload;
\r
1371 document.location.reload();
\r