--- /dev/null
+var gaProj=new Array();\r
+var gnChecked=0;\r
+var gsProjName="";\r
+var gbReady=false;\r
+var goMan=null;\r
+var gbXML=false;\r
+var gsFirstPane="";\r
+var gServerEnabled=false;\r
+var gsPath="";\r
+var gbWhPHost=false;\r
+var goDiv = null;\r
+var gsHTML = "";\r
+\r
+if (navigator.currentNavPen)\r
+ gsFirstPane = navigator.currentNavPen;\r
+\r
+\r
+function delayLoad()\r
+{\r
+ if (goDiv&&gsHTML)\r
+ {\r
+ goDiv.innerHTML=gsHTML;\r
+ goDiv=null;\r
+ gsHTML="";\r
+ }\r
+}\r
+\r
+function whCom(sName,sComFile)\r
+{\r
+ this.msName=sName;\r
+ this.msDivId=sName+"Div";\r
+ this.msIFrameId=sName+"IFrame";\r
+ this.msComFile=sComFile;\r
+ this.mbloaded=false;\r
+ this.mbShow=false;\r
+ this.show=function(bShow)\r
+ {\r
+ if(this.mbShow!=bShow)\r
+ {\r
+ if(bShow&&!this.mbloaded)\r
+ {\r
+ this.load();\r
+ }\r
+\r
+ var oDiv=getElement(this.msDivId);\r
+ if(oDiv)\r
+ {\r
+ if(gbIE55||(gbIE5&&gbMac))\r
+ {\r
+ var oIframe=getElement(this.msIFrameId);\r
+ if(oIframe)\r
+ {\r
+ if(bShow)\r
+ {\r
+ oDiv.style.zIndex=3;\r
+ if(oIframe!=null)\r
+ {\r
+ oIframe.style.zIndex=3;\r
+ if (!gbIE55)\r
+ oIframe.style.visibility="visible";\r
+ }\r
+ }\r
+ else\r
+ {\r
+ oDiv.style.zIndex=2;\r
+ if(oIframe!=null)\r
+ {\r
+ oIframe.style.zIndex=2;\r
+ if (!gbIE55)\r
+ oIframe.style.visibility="hidden";\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (!gbIE55)\r
+ oDiv.style.visibility=(bShow==true)?'visible':'hidden';\r
+ this.mbShow=bShow;\r
+ }\r
+\r
+ }\r
+ }\r
+ this.load=function()\r
+ {\r
+ if(!this.mbloaded)\r
+ {\r
+ if(this.msComFile.length>0){\r
+ var strFile= _getFullPath(getPath(), this.msComFile);\r
+ var oDiv=getElement(this.msDivId);\r
+ if(oDiv){\r
+ if(gbIE4){\r
+ var nIFrameHeight=oDiv.style.pixelHeight;\r
+ var nIFrameWidth=oDiv.style.pixelWidth;\r
+ var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";\r
+ if(gbMac){\r
+ sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";\r
+ }else{\r
+ sHTML+="100%; height:100%;\"></IFRAME>";\r
+ }\r
+ oDiv.innerHTML=sHTML;\r
+ }else if(gbNav6){\r
+ gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:";\r
+ gsHTML+="100%;\"></IFRAME>";\r
+ goDiv = oDiv;\r
+ setTimeout("delayLoad()", 100);\r
+ }\r
+ this.mbloaded=true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ this.unload=function()\r
+ {\r
+ var oDiv=getElement(this.msDivId);\r
+ if(oDiv)\r
+ oDiv.innerHTML="";\r
+ }\r
+ this.getDivHTML=function()\r
+ {\r
+ var sHTML="";\r
+ if(gbMac&&gbIE4)\r
+ sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";\r
+ else\r
+ if (gbIE5)\r
+ sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";\r
+ else\r
+ sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";\r
+ sHTML+="</DIV>";\r
+ return sHTML;\r
+ }\r
+} \r
+\r
+function whComMan()\r
+{\r
+ this.sName="";\r
+ this.maCom=new Array();\r
+ this.addCom=function(sName,sComFile)\r
+ {\r
+ var owhCom=new whCom(sName,sComFile);\r
+ this.maCom[this.maCom.length]=owhCom;\r
+ }\r
+ this.init=function()\r
+ {\r
+ var sHTML="";\r
+ for(var i=0;i<this.maCom.length;i++)\r
+ {\r
+ sHTML+=this.maCom[i].getDivHTML();\r
+ }\r
+ document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
+\r
+ }\r
+ this.showById=function(nId)\r
+ {\r
+ for(var s=0;s<this.maCom.length;s++)\r
+ {\r
+ if(s!==nId)\r
+ this.maCom[s].show(false);\r
+ }\r
+ this.maCom[nId].show(true);\r
+ }\r
+ this.show=function(sName)\r
+ {\r
+ navigator.currentNavPen = sName;\r
+ var bFound=false;\r
+ for(var i=0;i<this.maCom.length;i++)\r
+ {\r
+ if(sName==this.maCom[i].msName)\r
+ {\r
+ bFound=true;\r
+ break;\r
+ }\r
+ }\r
+ if(bFound)\r
+ {\r
+ this.showById(i);\r
+ this.sName=sName;\r
+ }\r
+ }\r
+ this.unload=function()\r
+ {\r
+ for(var i=0;i<this.maCom.length;i++)\r
+ {\r
+ this.maCom[i].unload();\r
+ } \r
+ }\r
+ this.getCurrent=function()\r
+ {\r
+ return this.sName;\r
+ }\r
+}\r
+\r
+function getPath()\r
+{\r
+ if(gsPath=="")\r
+ {\r
+ gsPath=location.href;\r
+ gsPath=_replaceSlash(gsPath);\r
+ var nPosFile=gsPath.lastIndexOf("/");\r
+ gsPath=gsPath.substring(0,nPosFile+1);\r
+ }\r
+ return gsPath;\r
+}\r
+\r
+goMan=new whComMan();\r
+function addPane(sName,sFileName)\r
+{\r
+ goMan.addCom(sName,sFileName); \r
+}\r
+\r
+function setShowPane(sName, bForce)\r
+{\r
+ if ((gsFirstPane == "") || bForce)\r
+ gsFirstPane=sName;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+ if(gsProjName!="")\r
+ {\r
+ goMan.init();\r
+ if(gsFirstPane!="")\r
+ goMan.show(gsFirstPane);\r
+ else\r
+ goMan.showById(0);\r
+ loadData2(gsProjName);\r
+ }\r
+ else if (gServerEnabled)\r
+ {\r
+ goMan.init();\r
+ if(gsFirstPane!="")\r
+ goMan.show(gsFirstPane);\r
+ else\r
+ goMan.showById(0);\r
+ }\r
+}\r
+\r
+function setServerEnabled()\r
+{\r
+ gServerEnabled = true;\r
+}\r
+\r
+function loadData2(strFile)\r
+{\r
+ if(gbXML)\r
+ loadDataXML(strFile);\r
+ else\r
+ loadData(strFile);\r
+}\r
+\r
+function addProject(bPreferXML,sXMLName,sHTMLName)\r
+{\r
+ var bLoadXML=bPreferXML;\r
+ if(!gbIE4&&!gbNav6)\r
+ return;\r
+ if(gbIE4&&!gbIE5)\r
+ bLoadXML=false;\r
+ if (gbIE5&&!gbMac)\r
+ bLoadXML=true;\r
+ if(gbIE55||gbNav6)\r
+ bLoadXML=true;\r
+ if(bLoadXML)\r
+ addProjectXML(sXMLName);\r
+ else\r
+ addProjectHTML(sHTMLName);\r
+}\r
+\r
+function addProjectHTML(sName)\r
+{\r
+ gbXML=false;\r
+ gsProjName=sName;\r
+}\r
+\r
+function addProjectXML(sName)\r
+{\r
+ gbXML=true;\r
+ gsProjName=sName;\r
+}\r
+\r
+function window_MyBunload()\r
+{\r
+ goMan.unload();\r
+ window_BUnload();\r
+}\r
+\r
+function putDataXML(xmlDoc,sdocPath)\r
+{\r
+ if(xmlDoc!=null)\r
+ {\r
+ var projectNode=xmlDoc.getElementsByTagName("project")[0];\r
+ if(projectNode)\r
+ {\r
+ var aRProj=new Array();\r
+ aRProj[0]=new Object();\r
+ aRProj[0].sPPath=_getPath(sdocPath);\r
+ var sLangId=projectNode.getAttribute("langid");\r
+ if(sLangId)\r
+ {\r
+ aRProj[0].sLangId=sLangId;\r
+ }\r
+ var sDPath=projectNode.getAttribute("datapath");\r
+ if(sDPath)\r
+ {\r
+ if(sDPath.lastIndexOf("/")!=sDPath.length-1)\r
+ sDPath+="/";\r
+ aRProj[0].sDPath=sDPath;\r
+ }\r
+ else\r
+ aRProj[0].sDPath="";\r
+ aRProj[0].sToc=projectNode.getAttribute("toc");\r
+ aRProj[0].sIdx=projectNode.getAttribute("index");\r
+ aRProj[0].sFts=projectNode.getAttribute("fts");\r
+ aRProj[0].sGlo=projectNode.getAttribute("glossary");\r
+ var RmtProject=projectNode.getElementsByTagName("remote");\r
+ var nCount=1;\r
+ for (var i=0;i<RmtProject.length;i++)\r
+ {\r
+ var sURL=RmtProject[i].getAttribute("url");\r
+ if(sURL)\r
+ {\r
+ aRProj[nCount]=new Object();\r
+ aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);\r
+ }\r
+ }\r
+ putProjectInfo(aRProj);\r
+ }\r
+ else\r
+ {\r
+ // on Netscape 6.0 under some situation the xml file cannot be loaded.\r
+ // so we use pure html instead.\r
+ setTimeout("redirectToList();",100);\r
+ }\r
+ }\r
+}\r
+\r
+function redirectToList()\r
+{\r
+ if(gbReDirectThis)\r
+ document.location=gsNavReDirect;\r
+ else\r
+ parent.document.location=gsNavReDirect;\r
+}\r
+\r
+function putProjectInfo(aRProj)\r
+{\r
+ if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))\r
+ {\r
+ if(gnChecked!=0)\r
+ {\r
+ if(aRProj[0].sLangId!=gaProj[0].sLangId)\r
+ alert("The project: "+aRProj[0].sPPath+" is using a different language to the main project, which will cause the index and full text search functionality to be disabled for this remote project.");\r
+ }\r
+ gaProj[gnChecked]=aRProj[0];\r
+ for(var i=1;i<aRProj.length;i++)\r
+ {\r
+ var bFound=false;\r
+ for(var j=0;j<gaProj.length;j++)\r
+ {\r
+ if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))\r
+ {\r
+ bFound=true;\r
+ break;\r
+ }\r
+ }\r
+ if(!bFound)\r
+ {\r
+ gaProj[gaProj.length]=aRProj[i];\r
+ }\r
+ }\r
+ gnChecked++;\r
+ checkRemoteProject();\r
+ }\r
+ else\r
+ alert("Could not load correctly, please click Refresh.");\r
+}\r
+\r
+function isSamePath(sPath1,sPath2)\r
+{\r
+ return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
+}\r
+\r
+function checkRemoteProject()\r
+{\r
+ if(gaProj.length!=gnChecked)\r
+ {\r
+ setTimeout("cancelProj("+gnChecked+");",10000);\r
+ loadData2(gaProj[gnChecked].sPPath+gsProjName);\r
+ }\r
+ else{\r
+ var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);\r
+ gbReady=true;\r
+ SendMessage(oMsg);\r
+ }\r
+}\r
+\r
+function cancelProj(i)\r
+{\r
+ if(i==gnChecked)\r
+ {\r
+ alert("Can't load project::"+gaProj[i].sPPath);\r
+ gnChecked++;\r
+ checkRemoteProject();\r
+ } \r
+}\r
+\r
+function window_resize()\r
+{\r
+ for(var i=0;i<goMan.maCom.length;i++)\r
+ {\r
+ var oFrame=getElement(goMan.maCom[i].msIFrameId);\r
+ if(oFrame)\r
+ {\r
+ oFrame.style.height=document.body.clientHeight;\r
+ oFrame.style.width=document.body.clientWidth;\r
+ }\r
+ }\r
+ window_resize2();\r
+}\r
+\r
+function window_resize2()\r
+{\r
+ if(document.body)\r
+ {\r
+ if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
+ {\r
+ var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+ SendMessage(oMsg);\r
+ }\r
+ }\r
+}\r
+\r
+function window_unload()\r
+{\r
+ UnRegisterListener2(this,WH_MSG_GETPROJINFO);\r
+ UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
+ UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
+ UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
+ UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
+ UnRegisterListener2(this,WH_MSG_GETPANEINFO);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+ if(oMsg)\r
+ {\r
+ var nMsgId=oMsg.nMessageId;\r
+ if(nMsgId==WH_MSG_GETPROJINFO)\r
+ {\r
+ if(gbReady)\r
+ {\r
+ var oProj=new Object();\r
+ oProj.aProj=gaProj;\r
+ oProj.bXML=gbXML;\r
+ oMsg.oParam=oProj;\r
+ }\r
+ else\r
+ return false;\r
+ }\r
+ else if(nMsgId==WH_MSG_SHOWTOC)\r
+ {\r
+ if(goMan)\r
+ goMan.show("toc");\r
+ var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
+ SendMessage(onMsg);\r
+ onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+ SendMessage(onMsg);\r
+ }\r
+ else if(nMsgId==WH_MSG_SHOWIDX)\r
+ {\r
+ if(goMan)\r
+ goMan.show("idx");\r
+ var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
+ SendMessage(onMsg);\r
+ onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+ SendMessage(onMsg);\r
+ }\r
+ else if(nMsgId==WH_MSG_SHOWFTS)\r
+ {\r
+ if(goMan)\r
+ goMan.show("fts");\r
+ var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
+ SendMessage(onMsg);\r
+ onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+ SendMessage(onMsg);\r
+ }\r
+ else if(nMsgId==WH_MSG_SHOWGLO)\r
+ {\r
+ if(goMan)\r
+ goMan.show("glo");\r
+ var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
+ SendMessage(onMsg);\r
+ onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+ SendMessage(onMsg);\r
+ }\r
+ else if(nMsgId==WH_MSG_GETPANEINFO)\r
+ {\r
+ oMsg.oParam=goMan.getCurrent();\r
+ return false;\r
+ }\r
+ }\r
+ return true;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+ RegisterListener2(this,WH_MSG_GETPROJINFO);\r
+ RegisterListener2(this,WH_MSG_SHOWTOC);\r
+ RegisterListener2(this,WH_MSG_SHOWIDX);\r
+ RegisterListener2(this,WH_MSG_SHOWFTS);\r
+ RegisterListener2(this,WH_MSG_SHOWGLO);\r
+ RegisterListener2(this,WH_MSG_GETPANEINFO);\r
+\r
+ if((gbMac&&gbIE4)||(gbSunOS&&gbIE5))\r
+ {\r
+ window.onresize=window_resize;\r
+ }\r
+ else if(gbIE4)\r
+ {\r
+ window.onresize=window_resize2;\r
+ }\r
+ window.onload=window_OnLoad;\r
+ window.onbeforeunload=window_MyBunload;\r
+ window.onunload=window_unload;\r
+ gbWhPHost=true;\r
+}\r
+else\r
+ document.location.reload();\r
+\r