2 var gaProj=new Array();
\r
9 var gServerEnabled=false;
\r
11 var gbWhPHost=false;
\r
15 if (navigator.currentNavPen)
\r
16 gsFirstPane = navigator.currentNavPen;
\r
19 function delayLoad()
\r
23 goDiv.innerHTML=gsHTML;
\r
29 function whCom(sName,sComFile)
\r
32 this.msDivId=sName+"Div";
\r
33 this.msIFrameId=sName+"IFrame";
\r
34 this.msComFile=sComFile;
\r
35 this.mbloaded=false;
\r
37 this.show=function(bShow)
\r
39 if(this.mbShow!=bShow)
\r
41 if(bShow&&!this.mbloaded)
\r
46 var oDiv=getElement(this.msDivId);
\r
49 if(gbIE55||(gbIE5&&gbMac))
\r
51 var oIframe=getElement(this.msIFrameId);
\r
56 oDiv.style.zIndex=3;
\r
59 oIframe.style.zIndex=3;
\r
61 oIframe.style.visibility="visible";
\r
66 oDiv.style.zIndex=2;
\r
69 oIframe.style.zIndex=2;
\r
71 oIframe.style.visibility="hidden";
\r
77 oDiv.style.visibility=(bShow==true)?'visible':'hidden';
\r
83 this.load=function()
\r
87 if(this.msComFile.length>0){
\r
88 var strFile= _getFullPath(getPath(), this.msComFile);
\r
89 var oDiv=getElement(this.msDivId);
\r
91 if(gbIE4||gbOpera7){
\r
92 var nIFrameHeight=oDiv.style.pixelHeight;
\r
93 var nIFrameWidth=oDiv.style.pixelWidth;
\r
94 var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";
\r
96 sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";
\r
98 sHTML+="100%; height:100%;\"></IFRAME>";
\r
100 oDiv.innerHTML=sHTML;
\r
102 gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:100%;\"></IFRAME>";
\r
104 setTimeout("delayLoad()", 100);
\r
106 this.mbloaded=true;
\r
111 this.unload=function()
\r
113 var oDiv=getElement(this.msDivId);
\r
117 this.getDivHTML=function()
\r
121 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
123 sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";
\r
124 else if(gbIE4||gbWindows)
\r
125 sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
\r
127 sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:"+parent.height+";visibility:hidden\">";
\r
133 function whComMan()
\r
136 this.maCom=new Array();
\r
137 this.addCom=function(sName,sComFile)
\r
139 var owhCom=new whCom(sName,sComFile);
\r
140 this.maCom[this.maCom.length]=owhCom;
\r
142 this.init=function()
\r
145 for(var i=0;i<this.maCom.length;i++)
\r
147 sHTML+=this.maCom[i].getDivHTML();
\r
149 document.body.insertAdjacentHTML("beforeEnd",sHTML);
\r
152 this.showById=function(nId)
\r
154 for(var s=0;s<this.maCom.length;s++)
\r
157 this.maCom[s].show(false);
\r
159 this.maCom[nId].show(true);
\r
161 this.show=function(sName)
\r
163 navigator.currentNavPen = sName;
\r
165 for(var i=0;i<this.maCom.length;i++)
\r
167 if(sName==this.maCom[i].msName)
\r
179 this.unload=function()
\r
181 for(var i=0;i<this.maCom.length;i++)
\r
183 this.maCom[i].unload();
\r
186 this.getCurrent=function()
\r
196 gsPath=location.href;
\r
197 gsPath=_replaceSlash(gsPath);
\r
198 var nPosFile=gsPath.lastIndexOf("/");
\r
199 gsPath=gsPath.substring(0,nPosFile+1);
\r
204 goMan=new whComMan();
\r
205 function addPane(sName,sFileName)
\r
207 var oParam=new Object();
\r
208 oParam.sName=sName;
\r
209 var oMsg=new whMessage(WH_MSG_GETPANE, this, 1, oParam);
\r
210 if (SendMessage(oMsg))
\r
212 if (oMsg.oParam.bEnable)
\r
213 goMan.addCom(sName,sFileName);
\r
216 goMan.addCom(sName,sFileName);
\r
219 function setShowPane(sName, bForce)
\r
221 if ((gsFirstPane == "") || bForce)
\r
223 var oMsg=new whMessage(WH_MSG_GETDEFPANE, this, 1, null);
\r
224 if (SendMessage(oMsg))
\r
227 gsFirstPane = oMsg.oParam;
\r
236 function window_OnLoad()
\r
238 var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
\r
239 var bHidePane=false;
\r
240 if (SendMessage(oMsg))
\r
246 else if(oMsg.oParam==2)
\r
248 else if(oMsg.oParam==3)
\r
250 else if(oMsg.oParam==4)
\r
253 else if(oMsg.oParam==0)
\r
259 if(gsProjName!="")
\r
260 loadData2(gsProjName);
\r
264 var oMsg1=new whMessage(WH_MSG_HIDEPANE, this, 1, null)
\r
265 SendMessage(oMsg1);
\r
269 if(gsFirstPane!="")
\r
270 goMan.show(gsFirstPane);
\r
276 function setServerEnabled()
\r
278 gServerEnabled = true;
\r
281 function loadData2(strFile)
\r
284 loadDataXML(strFile);
\r
289 function addProject(bPreferXML,sXMLName,sHTMLName)
\r
291 var bLoadXML=bPreferXML;
\r
292 if(!gbIE4&&!gbNav6&&!gbOpera7)
\r
303 addProjectXML(sXMLName);
\r
305 addProjectHTML(sHTMLName);
\r
308 function addProjectHTML(sName)
\r
314 function addProjectXML(sName)
\r
320 function window_MyBunload()
\r
326 function putDataXML(xmlDoc,sdocPath)
\r
330 var projectNode=xmlDoc.getElementsByTagName("project")[0];
\r
333 var aRProj=new Array();
\r
334 aRProj[0]=new Object();
\r
335 aRProj[0].sPPath=_getPath(sdocPath);
\r
336 var sLangId=projectNode.getAttribute("langid");
\r
339 aRProj[0].sLangId=sLangId;
\r
341 var sDPath=projectNode.getAttribute("datapath");
\r
344 if(sDPath.lastIndexOf("/")!=sDPath.length-1)
\r
346 aRProj[0].sDPath=sDPath;
\r
349 aRProj[0].sDPath="";
\r
350 aRProj[0].sToc=projectNode.getAttribute("toc");
\r
351 aRProj[0].sIdx=projectNode.getAttribute("index");
\r
352 aRProj[0].sFts=projectNode.getAttribute("fts");
\r
353 aRProj[0].sGlo=projectNode.getAttribute("glossary");
\r
354 var RmtProject=projectNode.getElementsByTagName("remote");
\r
356 for (var i=0;i<RmtProject.length;i++)
\r
358 var sURL=RmtProject[i].getAttribute("url");
\r
361 if(sURL.lastIndexOf("/")!=sURL.length-1)
\r
363 aRProj[nCount]=new Object();
\r
364 aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);
\r
367 putProjectInfo(aRProj);
\r
371 // on Netscape 6.0 under some situation the xml file cannot be loaded.
\r
372 // so we use pure html instead.
\r
373 if (gnChecked == 0)
\r
374 setTimeout("redirectToList();",100);
\r
378 setTimeout("checkRemoteProject();", 1);
\r
384 function onLoadXMLError()
\r
387 setTimeout("checkRemoteProject();", 1);
\r
390 function redirectToList()
\r
393 document.location=gsNavReDirect;
\r
395 parent.document.location=gsNavReDirect;
\r
398 function putProjectInfo(aRProj)
\r
400 if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))
\r
404 if(aRProj[0].sLangId!=gaProj[0].sLangId)
\r
405 alert("The merged Help system "+aRProj[0].sPPath+" is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system.");
\r
407 gaProj[gnChecked]=aRProj[0];
\r
408 for(var i=1;i<aRProj.length;i++)
\r
411 for(var j=0;j<gaProj.length;j++)
\r
413 if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))
\r
421 gaProj[gaProj.length]=aRProj[i];
\r
425 setTimeout("checkRemoteProject();", 1);
\r
428 alert("Could not load correctly, please click Refresh.");
\r
431 function isSamePath(sPath1,sPath2)
\r
433 return (sPath1.toLowerCase()==sPath2.toLowerCase());
\r
436 function checkRemoteProject()
\r
438 if(gaProj.length!=gnChecked)
\r
440 setTimeout("cancelProj("+gnChecked+");",10000);
\r
441 loadData2(gaProj[gnChecked].sPPath+gsProjName);
\r
444 var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);
\r
450 function cancelProj(i)
\r
455 setTimeout("checkRemoteProject();", 1);
\r
459 function window_resize()
\r
461 for(var i=0;i<goMan.maCom.length;i++)
\r
463 var oFrame=getElement(goMan.maCom[i].msIFrameId);
\r
466 oFrame.style.height=document.body.clientHeight;
\r
467 oFrame.style.width=document.body.clientWidth;
\r
473 function window_resize2()
\r
477 if(document.body.clientWidth > 1 && document.body.clientHeight>1)
\r
479 var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);
\r
485 function window_unload()
\r
487 UnRegisterListener2(this,WH_MSG_GETPROJINFO);
\r
488 UnRegisterListener2(this,WH_MSG_SHOWTOC);
\r
489 UnRegisterListener2(this,WH_MSG_SHOWIDX);
\r
490 UnRegisterListener2(this,WH_MSG_SHOWFTS);
\r
491 UnRegisterListener2(this,WH_MSG_SHOWGLO);
\r
492 UnRegisterListener2(this,WH_MSG_GETPANEINFO);
\r
495 function onSendMessage(oMsg)
\r
499 var nMsgId=oMsg.nMessageId;
\r
500 if(nMsgId==WH_MSG_GETPROJINFO)
\r
504 var oProj=new Object();
\r
505 oProj.aProj=gaProj;
\r
512 else if(nMsgId==WH_MSG_SHOWTOC)
\r
516 var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
\r
517 SendMessage(onMsg);
\r
518 onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
\r
519 SendMessage(onMsg);
\r
521 else if(nMsgId==WH_MSG_SHOWIDX)
\r
525 var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
\r
526 SendMessage(onMsg);
\r
527 onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
\r
528 SendMessage(onMsg);
\r
530 else if(nMsgId==WH_MSG_SHOWFTS)
\r
534 var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
\r
535 SendMessage(onMsg);
\r
536 onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
\r
537 SendMessage(onMsg);
\r
539 else if(nMsgId==WH_MSG_SHOWGLO)
\r
543 var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
\r
544 SendMessage(onMsg);
\r
545 onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
\r
546 SendMessage(onMsg);
\r
548 else if(nMsgId==WH_MSG_GETPANEINFO)
\r
550 oMsg.oParam=goMan.getCurrent();
\r
557 if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
\r
559 RegisterListener2(this,WH_MSG_GETPROJINFO);
\r
560 RegisterListener2(this,WH_MSG_SHOWTOC);
\r
561 RegisterListener2(this,WH_MSG_SHOWIDX);
\r
562 RegisterListener2(this,WH_MSG_SHOWFTS);
\r
563 RegisterListener2(this,WH_MSG_SHOWGLO);
\r
564 RegisterListener2(this,WH_MSG_GETPANEINFO);
\r
566 if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)||gbOpera7)
\r
568 window.onresize=window_resize;
\r
572 window.onresize=window_resize2;
\r
574 window.onload=window_OnLoad;
\r
575 window.onbeforeunload=window_MyBunload;
\r
576 window.onunload=window_unload;
\r
580 document.location.reload();
\r