3 var gaPaths=new Array();
4 var gaAvenues=new Array();
8 var gsRelCurPagePath="";
9 var gsSearchFormHref="";
11 var gnOutmostTopic=-1;
30 var gaButtons=new Array();
31 var gaTypes=new Array();
32 var whtopic_foldUnload=null;
34 var gbCheckSync=false;
35 var gbSyncEnabled=false;
37 function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
39 var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
40 gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}";
43 function writeBtnStyle()
45 if(gaButtons.length>0)
47 if(gsBtnStyle.length>0)
49 var sStyle="<style type='text/css'>";
50 sStyle+=gsBtnStyle+"</style>";
51 document.write(sStyle);
56 function button(sText,nWidth,nHeight)
62 this.aImgs=new Array();
64 while(button.arguments.length>i+3)
66 this.aImgs[i]=button.arguments[3+i];
72 function setRelStartPage(sPath)
76 gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath));
77 gsStartPage=_getFullPath(_getPath(document.location.href),sPath);
78 gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href);
82 function getImage(oImage,sType)
85 if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0))
87 sImg+="<img alt=\""+sType+"\" src=\""+oImage.aImgs[0]+"\"";
89 sImg+=" width="+oImage.nWidth;
91 sImg+=" height="+oImage.nHeight;
97 function addTocInfo(sTocPath)
99 gaPaths[gaPaths.length]=sTocPath;
102 function addAvenueInfo(sName,sPrev,sNext)
104 gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext);
107 function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3)
110 var nBtn=gaButtons.length;
115 var sTitle="Previous Topic";
116 goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
117 sButton="<a title=\""+sTitle+"\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";
119 sButton+=goPrev.sText;
121 sButton+=getImage(goPrev,sTitle);
125 else if(sType=="next")
129 var sTitle="Next Topic";
130 goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
131 sButton="<a title=\""+sTitle+"\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";
133 sButton+=goNext.sText;
135 sButton+=getImage(goNext,sTitle);
139 else if(sType=="show")
141 if(isTopicOnly()&&(!gbOpera6||gbOpera7))
143 var sTitle="Show Navigation Component";
144 goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
145 sButton="<a title=\""+sTitle+"\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";
147 sButton+=goShow.sText;
149 sButton+=getImage(goShow,sTitle);
153 else if(sType=="hide")
155 if(!isTopicOnly()&&!gbOpera6)
157 var sTitle="Hide Navigation Component";
158 goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
159 sButton="<a title=\""+sTitle+"\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";
161 sButton+=goHide.sText;
163 sButton+=getImage(goHide,sTitle);
167 else if(sType=="shownav")
169 if(isShowHideEnable())
171 var sTitle="Show Navigation Component";
172 goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
173 sButton="<a title=\""+sTitle+"\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";
175 sButton+=goShowNav.sText;
177 sButton+=getImage(goShowNav,sTitle);
181 else if(sType=="hidenav")
183 if(isShowHideEnable())
185 var sTitle="Hide Navigation Component";
186 goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
187 sButton="<a title=\""+sTitle+"\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";
189 sButton+=goHideNav.sText;
191 sButton+=getImage(goHideNav,sTitle);
195 else if(sType=="synctoc")
199 var sTitle="Sync TOC";
200 goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
201 sButton="<a title=\""+sTitle+"\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";
203 sButton+=goSync.sText;
205 sButton+=getImage(goSync,sTitle);
209 else if(sType=="websearch")
211 if(gsSearchFormHref.length>0)
213 var sTitle="WebSearch";
214 goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
215 sButton="<a title=\""+sTitle+"\" class=\"whtbtnwebsearch\" href=\""+gsSearchFormHref+"\">";
217 sButton+=goWebSearch.sText;
219 sButton+=getImage(goWebSearch,sTitle);
223 else if(sType=="searchform")
225 gaButtons[nBtn]="NeedSearchForm";
228 if(sButton.length!=0)
232 gaButtons[nBtn]="<td>"+sButton+"</td>";
237 function isSyncEnabled()
241 var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);
242 if(SendMessage(oMsg))
244 gbSyncEnabled=oMsg.oParam;
248 return gbSyncEnabled;
253 return (window.name.indexOf("BSSCPopup")!=-1);
256 function getIntopicBar(sAlign)
259 if(gaButtons.length>0)
261 sHTML+="<div align="+sAlign+">";
263 sHTML+="<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";
264 for(var i=0;i<gaButtons.length;i++)
266 if(gaTypes[i]!="synctoc"||isSyncEnabled())
268 if(gaButtons[i]=="NeedSearchForm")
269 sHTML+=getSearchFormHTML();
274 sHTML+="</tr></table>";
282 function writeIntopicBar(nAligns)
284 if(isInPopup()) return;
285 if(gaButtons.length>0)
290 sHTML+="<table width=100%><tr>"
292 sHTML+="<td width=33%>"+getIntopicBar("left")+"</td>";
294 sHTML+="<td width=34%>"+getIntopicBar("center")+"</td>";
296 sHTML+="<td width=33%>"+getIntopicBar("right")+"</td>";
297 sHTML+="</tr></table>";
298 document.write(sHTML);
303 function sendAveInfoOut()
306 setTimeout("sendAveInfo();",100);
309 function sendAveInfo()
311 var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues);
318 var oMsg=new whMessage(WH_MSG_NEXT,this,1,null);
324 var oMsg=new whMessage(WH_MSG_PREV,this,1,null);
328 function createSyncInfo()
330 var oParam=new Object();
331 if(gsPPath.length==0)
332 gsPPath=_getPath(document.location.href);
333 oParam.sPPath=gsPPath;
334 oParam.sTPath=document.location.href;
335 oParam.aPaths=gaPaths;
339 function syncWithShow()
350 function showTocPane()
352 var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null);
356 function sendSyncInfo()
363 oParam=createSyncInfo();
365 var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam);
370 function sendInvalidSyncInfo()
374 var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null);
379 function enableWebSearch(bEnable)
383 var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable);
388 function autoSync(nSync)
391 if(isInPopup()) return;
396 function isOutMostTopic()
398 if(gnOutmostTopic==-1)
400 var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null);
401 if(SendMessage(oMessage))
406 return (gnOutmostTopic==1);
413 var oParam=createSyncInfo();
414 var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);
415 SendMessage(oMessage);
420 function avenueInfo(sName,sPrev,sNext)
427 function getCurrentAvenue()
429 var oParam=new Object();
431 var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam);
432 SendMessage(oMessage);
433 return oParam.sAvenue;
436 function unRegisterListener()
438 sendInvalidSyncInfo();
439 enableWebSearch(false);
440 if(whtopic_foldUnload)
441 whtopic_foldUnload();
444 function onSendMessage(oMsg)
446 var nMsgId=oMsg.nMessageId;
447 if(nMsgId==WH_MSG_GETAVIAVENUES)
449 oMsg.oParam.aAvenues=gaAvenues;
452 else if(nMsgId==WH_MSG_GETTOCPATHS)
456 oMsg.oParam.oTocInfo=createSyncInfo();
462 else if(nMsgId==WH_MSG_NEXT)
466 else if(nMsgId==WH_MSG_PREV)
470 else if(nMsgId==WH_MSG_WEBSEARCH)
477 function goAvenue(bNext)
480 var sAvenue=getCurrentAvenue();
482 if(sAvenue!=null&&sAvenue!="")
484 for(var i=0;i<gaAvenues.length;i++)
486 if(gaAvenues[i].sName==sAvenue)
495 sTopic=gaAvenues[nAvenue].sNext;
497 sTopic=gaAvenues[nAvenue].sPrev;
502 for(var i=0;i<gaAvenues.length;i++)
504 if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)
506 sTopic=gaAvenues[i].sNext;
509 else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)
511 sTopic=gaAvenues[i].sPrev;
517 if(sTopic!=null&&sTopic!="")
519 if(gsPPath!=null&&gsPPath!="")
521 sFullTopicPath=_getFullPath(gsPPath,sTopic);
522 document.location=sFullTopicPath;
527 function canGo(bNext)
529 for(var i=0;i<gaAvenues.length;i++)
531 if((gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)||
532 (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext))
541 window.location=gsStartPage+"#"+gsRelCurPagePath;
548 goFrame.location=window.location;
552 function isTopicOnly()
556 var oParam=new Object();
558 var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam);
559 if(SendMessage(oMsg))
561 goFrame=oParam.oFrame;
577 if(document.ehelpform)
578 document.ehelpform.submit();
583 window.ehelpform.submit();
587 function addSearchFormHref(sHref)
589 gsSearchFormHref=sHref;
590 enableWebSearch(true);
593 function searchB(nForm)
595 var sValue=eval("document.searchForm"+nForm+".searchString.value");
596 var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue);
600 function getSearchFormHTML()
604 var sFormName="searchForm"+gnForm;
605 var sButton="<form name=\""+sFormName+"\" method=\"POST\" action=\"javascript:searchB("+gnForm+")\">"
606 sButton+="<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";
609 sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\"></a>";
613 sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\">"
614 sButton+="<img src=\"\" border=0></a>";
617 sHTML="<td align=\"center\">"+sButton+"</td>";
621 function showHidePane(bShow)
625 oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
627 oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);
631 function isShowHideEnable()
640 function PickupDialog_Invoke()
644 if(typeof(_PopupMenu_Invoke)=="function")
645 return _PopupMenu_Invoke(PickupDialog_Invoke.arguments);
649 if(PickupDialog_Invoke.arguments.length>2)
651 var sPickup="whskin_pickup.htm";
652 var sPickupPath=gsPPath+sPickup;
655 var sFrame=PickupDialog_Invoke.arguments[1];
656 var aTopics=new Array();
657 for(var i=2;i<PickupDialog_Invoke.arguments.length;i+=2)
659 var j=aTopics.length;
660 aTopics[j]=new Object();
661 aTopics[j].m_sName=PickupDialog_Invoke.arguments[i];
662 aTopics[j].m_sURL=PickupDialog_Invoke.arguments[i+1];
669 var nScreenWidth=screen.width;
670 var nScreenHeight=screen.height;
671 var nLeft=(nScreenWidth-nWidth)/2;
672 var nTop=(nScreenHeight-nHeight)/2;
675 var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;");
680 window.open(sURL,sFrame);
682 window.open(sURL,"_self");
686 else if(aTopics.length==1)
688 var sURL=aTopics[0].m_sURL
690 window.open(sURL,sFrame);
692 window.open(sURL,"_self");
699 if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
701 RegisterListener("bsscright",WH_MSG_GETAVIAVENUES);
702 RegisterListener("bsscright",WH_MSG_GETTOCPATHS);
703 RegisterListener("bsscright",WH_MSG_NEXT);
704 RegisterListener("bsscright",WH_MSG_PREV);
705 RegisterListener("bsscright",WH_MSG_WEBSEARCH);
708 if(typeof(window.onunload)!="unknown")
709 if(window.onunload.toString!=unRegisterListener.toString)
710 whtopic_foldUnload=window.onunload;
715 if(window.onunload.toString!=unRegisterListener.toString)
716 whtopic_foldUnload=window.onunload;
718 window.onunload=unRegisterListener;
719 setButtonFont("show","","10pt","","","","");
724 document.location.reload();