+++ /dev/null
-// 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
- document.location.reload();
\ No newline at end of file