--- /dev/null
+var gsPPath = "";\r
+var gaPaths = new Array();\r
+var gaAvenues = new Array();\r
+\r
+var goFrame = null;\r
+var gsStartPage = "";\r
+var gsRelCurPagePath = "";\r
+var gsSearchFormHref = "";\r
+var gnTopicOnly = -1;\r
+var gnOutmostTopic = -1;\r
+\r
+var BTN_TEXT=1;\r
+var BTN_IMG=2;\r
+\r
+var goSync = null;\r
+\r
+var goShow = null;\r
+var goHide = null;\r
+\r
+var goPrev = null;\r
+var goNext = null;\r
+var gnForm = 0;\r
+var goShowNav = null;\r
+var goHideNav = null;\r
+\r
+var goWebSearch = null;\r
+\r
+var gsBtnStyle = "";\r
+var gaButtons = new Array();\r
+var gaTypes = new Array();\r
+var whtopic_foldUnload = null;\r
+var gbWhTopic=false;\r
+var gbCheckSync=false;\r
+var gbSyncEnabled=false;\r
+\r
+function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+ var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+ gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}";\r
+}\r
+\r
+function writeBtnStyle()\r
+{\r
+ if (gaButtons.length > 0)\r
+ {\r
+ if (gsBtnStyle.length > 0)\r
+ {\r
+ var sStyle = "<style type='text/css'>";\r
+ sStyle+= gsBtnStyle + "</style>";\r
+ document.write(sStyle);\r
+ }\r
+ }\r
+}\r
+\r
+function button(sText, nWidth, nHeight)\r
+{\r
+ this.sText = sText;\r
+ this.nWidth = nWidth;\r
+ this.nHeight = nHeight;\r
+ \r
+ this.aImgs = new Array();\r
+ var i = 0;\r
+ while (button.arguments.length > i + 3)\r
+ {\r
+ this.aImgs[i] = button.arguments[3 + i];\r
+ i ++;\r
+ }\r
+}\r
+\r
+// project info\r
+function setRelStartPage(sPath)\r
+{\r
+ if (gsPPath.length == 0)\r
+ {\r
+ gsPPath = _getFullPath(_getPath(document.location.href), _getPath(sPath));\r
+ gsStartPage = _getFullPath(_getPath(document.location.href), sPath);\r
+ gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href);\r
+ }\r
+}\r
+\r
+function getImage(oImage, sType)\r
+{\r
+ var sImg="";\r
+ if (oImage && oImage.aImgs && (oImage.aImgs.length > 0))\r
+ {\r
+ sImg+="<img alt=\""+ sType + "\" src=\"" + oImage.aImgs[0] + "\"";\r
+ if (oImage.nWidth > 0)\r
+ sImg+=" width=" + oImage.nWidth;\r
+ if (oImage.nHeight > 0)\r
+ sImg+=" height=" + oImage.nHeight;\r
+ sImg+=" border=no>";\r
+ }\r
+ return sImg;\r
+}\r
+\r
+function addTocInfo(sTocPath)\r
+{\r
+ gaPaths[gaPaths.length] = sTocPath;\r
+}\r
+\r
+function addAvenueInfo(sName, sPrev, sNext)\r
+{\r
+ gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext); \r
+}\r
+\r
+function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3)\r
+{\r
+ var sButton = "";\r
+ var nBtn=gaButtons.length;\r
+ if (sType == "prev")\r
+ {\r
+ if (canGo(false))\r
+ {\r
+ var sTitle = "Previous Topic";\r
+ goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goPrev.sText;\r
+ else\r
+ sButton += getImage(goPrev, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "next")\r
+ {\r
+ if (canGo(true))\r
+ {\r
+ var sTitle = "Next Topic";\r
+ goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goNext.sText;\r
+ else\r
+ sButton += getImage(goNext, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "show")\r
+ {\r
+ if (isTopicOnly())\r
+ {\r
+ var sTitle = "Show Navigation Component";\r
+ goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goShow.sText;\r
+ else\r
+ sButton += getImage(goShow, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "hide")\r
+ {\r
+ if (!isTopicOnly())\r
+ {\r
+ var sTitle = "Hide Navigation Component";\r
+ goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goHide.sText;\r
+ else\r
+ sButton += getImage(goHide, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "shownav")\r
+ {\r
+ \r
+ if (isShowHideEnable())\r
+ {\r
+ var sTitle = "Show Navigation Component";\r
+ goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goShowNav.sText;\r
+ else\r
+ sButton += getImage(goShowNav, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "hidenav")\r
+ {\r
+ if (isShowHideEnable())\r
+ {\r
+ var sTitle = "Hide Navigation Component";\r
+ goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goHideNav.sText;\r
+ else\r
+ sButton += getImage(goHideNav, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "synctoc")\r
+ {\r
+ if (gaPaths.length > 0)\r
+ {\r
+ var sTitle = "Sync TOC";\r
+ goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goSync.sText;\r
+ else\r
+ sButton += getImage(goSync, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "websearch")\r
+ {\r
+ if (gsSearchFormHref.length > 0)\r
+ {\r
+ var sTitle = "WebSearch";\r
+ goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+ sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnwebsearch\" href=\"" + gsSearchFormHref + "\">";\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += goWebSearch.sText;\r
+ else\r
+ sButton += getImage(goWebSearch, sTitle);\r
+ sButton += "</a>";\r
+ }\r
+ }\r
+ else if (sType == "searchform")\r
+ {\r
+ gaButtons[nBtn] = "NeedSearchForm";\r
+ gaTypes[nBtn] = sType;\r
+ }\r
+ if (sButton.length != 0)\r
+ {\r
+ if (nStyle == BTN_TEXT)\r
+ sButton += " ";\r
+ gaButtons[nBtn] = "<td>" + sButton + "</td>";\r
+ gaTypes[nBtn] = sType;\r
+ }\r
+}\r
+\r
+function isSyncEnabled()\r
+{\r
+ if (!gbCheckSync)\r
+ {\r
+ var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
+ if(SendMessage(oMsg))\r
+ {\r
+ gbSyncEnabled=oMsg.oParam;\r
+ }\r
+ gbCheckSync=true;\r
+ }\r
+ return gbSyncEnabled;\r
+}\r
+\r
+function isInPopup()\r
+{\r
+ return (window.name.indexOf("BSSCPopup") != -1);\r
+}\r
+\r
+function getIntopicBar(sAlign)\r
+{\r
+ var sHTML = "";\r
+ if (gaButtons.length > 0)\r
+ {\r
+ sHTML += "<div align="+ sAlign + ">";\r
+\r
+ sHTML += "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";\r
+ for (var i = 0; i < gaButtons.length; i++)\r
+ {\r
+ if (gaTypes[i]!="synctoc" || isSyncEnabled())\r
+ {\r
+ if (gaButtons[i] == "NeedSearchForm")\r
+ sHTML += getSearchFormHTML();\r
+ else\r
+ sHTML += gaButtons[i];\r
+ }\r
+ }\r
+ sHTML += "</tr></table>";\r
+\r
+ sHTML += "</div>";\r
+ }\r
+ return sHTML;\r
+}\r
+\r
+\r
+function writeIntopicBar(nAligns)\r
+{\r
+ if (isInPopup()) return;\r
+ if (gaButtons.length > 0)\r
+ {\r
+ var sHTML = "";\r
+ if (nAligns != 0)\r
+ {\r
+ sHTML += "<table width=100%><tr>"\r
+ if (nAligns & 1)\r
+ sHTML += "<td width=33%>" + getIntopicBar("left") + "</td>";\r
+ if (nAligns & 2)\r
+ sHTML += "<td width=34%>" + getIntopicBar("center") + "</td>";\r
+ if (nAligns & 4)\r
+ sHTML += "<td width=33%>" + getIntopicBar("right") + "</td>";\r
+ sHTML += "</tr></table>";\r
+ document.write(sHTML);\r
+ }\r
+ }\r
+}\r
+\r
+function sendAveInfoOut()\r
+{\r
+ if (!isInPopup())\r
+ setTimeout("sendAveInfo();", 100);\r
+}\r
+\r
+function sendAveInfo()\r
+{\r
+ var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues);\r
+ SendMessage(oMsg);\r
+}\r
+\r
+\r
+function onNext()\r
+{\r
+ var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null);\r
+ SendMessage(oMsg);\r
+}\r
+\r
+function onPrev()\r
+{\r
+ var oMsg = new whMessage(WH_MSG_PREV, this, 1, null);\r
+ SendMessage(oMsg);\r
+}\r
+\r
+function createSyncInfo()\r
+{\r
+ var oParam = new Object();\r
+ if (gsPPath.length == 0)\r
+ gsPPath = _getPath(document.location.href);\r
+ oParam.sPPath = gsPPath;\r
+ oParam.sTPath = document.location.href;\r
+ oParam.aPaths = gaPaths;\r
+ return oParam;\r
+}\r
+\r
+function syncWithShow()\r
+{\r
+ if (isTopicOnly())\r
+ show();\r
+ else \r
+ {\r
+ sync();\r
+ showTocPane();\r
+ }\r
+}\r
+\r
+function showTocPane()\r
+{\r
+ var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null);\r
+ SendMessage(oMsg);\r
+}\r
+\r
+function sendSyncInfo()\r
+{\r
+ if (!isInPopup())\r
+ {\r
+ var oParam = null;\r
+ if (gaPaths.length > 0)\r
+ {\r
+ oParam = createSyncInfo();\r
+ }\r
+ var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam);\r
+ SendMessage(oMsg);\r
+ }\r
+}\r
+\r
+function sendInvalidSyncInfo()\r
+{\r
+ if (!isInPopup())\r
+ {\r
+ var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null);\r
+ SendMessage(oMsg);\r
+ }\r
+}\r
+\r
+function enableWebSearch(bEnable)\r
+{\r
+ if (!isInPopup())\r
+ {\r
+ var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable);\r
+ SendMessage(oMsg);\r
+ }\r
+}\r
+\r
+function autoSync(nSync)\r
+{\r
+ if (nSync == 0) return;\r
+ if (isInPopup()) return;\r
+ if (isOutMostTopic())\r
+ sync();\r
+}\r
+\r
+function isOutMostTopic()\r
+{\r
+ if (gnOutmostTopic == -1)\r
+ {\r
+ var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null);\r
+ if (SendMessage(oMessage))\r
+ gnOutmostTopic = 0;\r
+ else\r
+ gnOutmostTopic = 1;\r
+ }\r
+ return (gnOutmostTopic == 1);\r
+}\r
+\r
+function sync()\r
+{\r
+ if (gaPaths.length > 0)\r
+ {\r
+ var oParam = createSyncInfo();\r
+ var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam);\r
+ SendMessage(oMessage);\r
+ }\r
+}\r
+\r
+\r
+function avenueInfo(sName, sPrev, sNext)\r
+{\r
+ this.sName = sName;\r
+ this.sPrev = sPrev;\r
+ this.sNext = sNext;\r
+}\r
+\r
+function getCurrentAvenue()\r
+{\r
+ var oParam = new Object();\r
+ oParam.sAvenue = null;\r
+ var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam);\r
+ SendMessage(oMessage);\r
+ return oParam.sAvenue;\r
+}\r
+\r
+function unRegisterListener()\r
+{\r
+ sendInvalidSyncInfo();\r
+ enableWebSearch(false);\r
+ if (whtopic_foldUnload)\r
+ whtopic_foldUnload();\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+ var nMsgId = oMsg.nMessageId;\r
+ if (nMsgId == WH_MSG_GETAVIAVENUES)\r
+ {\r
+ oMsg.oParam.aAvenues = gaAvenues;\r
+ return false;\r
+ }\r
+ else if (nMsgId == WH_MSG_GETTOCPATHS)\r
+ {\r
+ if (isOutMostTopic())\r
+ {\r
+ oMsg.oParam.oTocInfo = createSyncInfo();\r
+ return false; \r
+ }\r
+ else\r
+ return true;\r
+ }\r
+ else if (nMsgId == WH_MSG_NEXT)\r
+ {\r
+ goAvenue(true);\r
+ }\r
+ else if (nMsgId == WH_MSG_PREV)\r
+ {\r
+ goAvenue(false);\r
+ }\r
+ else if (nMsgId == WH_MSG_WEBSEARCH)\r
+ {\r
+ websearch();\r
+ }\r
+ return true;\r
+}\r
+\r
+function goAvenue(bNext)\r
+{\r
+ var sTopic = null;\r
+ var sAvenue = getCurrentAvenue();\r
+ var nAvenue = -1;\r
+ if (sAvenue != null && sAvenue != "")\r
+ {\r
+ for (var i = 0; i < gaAvenues.length ; i ++)\r
+ {\r
+ if (gaAvenues[i].sName == sAvenue)\r
+ {\r
+ nAvenue = i;\r
+ break;\r
+ }\r
+ }\r
+ if (nAvenue != -1)\r
+ {\r
+ if (bNext)\r
+ sTopic = gaAvenues[nAvenue].sNext;\r
+ else\r
+ sTopic = gaAvenues[nAvenue].sPrev;\r
+ }\r
+ }\r
+ else\r
+ { \r
+ for (var i = 0; i < gaAvenues.length ; i ++)\r
+ {\r
+ if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext)\r
+ {\r
+ sTopic = gaAvenues[i].sNext;\r
+ break;\r
+ }\r
+ else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)\r
+ {\r
+ sTopic = gaAvenues[i].sPrev;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ \r
+ if (sTopic != null && sTopic != "")\r
+ {\r
+ if (gsPPath != null && gsPPath != "")\r
+ {\r
+ sFullTopicPath = _getFullPath(gsPPath, sTopic);\r
+ document.location = sFullTopicPath;\r
+ }\r
+ }\r
+}\r
+\r
+function canGo(bNext)\r
+{\r
+ for (var i = 0; i < gaAvenues.length ; i ++)\r
+ {\r
+ if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) ||\r
+ (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext))\r
+ return true;\r
+ }\r
+ return false;\r
+}\r
+\r
+function show()\r
+{\r
+ if (gsStartPage != "")\r
+ window.location = gsStartPage + "#" + gsRelCurPagePath;\r
+}\r
+\r
+function hide()\r
+{\r
+ if (goFrame != null)\r
+ {\r
+ goFrame.location = window.location;\r
+ }\r
+}\r
+\r
+function isTopicOnly()\r
+{\r
+ if (gnTopicOnly == -1)\r
+ {\r
+ var oParam = new Object();\r
+ oParam.oFrame = null;\r
+ var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam);\r
+ if (SendMessage(oMsg))\r
+ {\r
+ goFrame = oParam.oFrame;\r
+ gnTopicOnly = 0;\r
+ }\r
+ else\r
+ gnTopicOnly = 1;\r
+ }\r
+ if (gnTopicOnly == 1)\r
+ return true;\r
+ else\r
+ return false;\r
+}\r
+\r
+function websearch()\r
+{\r
+ if (gbNav4)\r
+ {\r
+ if (document.ehelpform)\r
+ document.ehelpform.submit();\r
+ }\r
+ else\r
+ {\r
+ if (window.ehelpform)\r
+ window.ehelpform.submit();\r
+ }\r
+}\r
+\r
+function addSearchFormHref(sHref)\r
+{\r
+ gsSearchFormHref = sHref;\r
+ enableWebSearch(true);\r
+}\r
+\r
+function searchB(nForm)\r
+{\r
+ var sValue = eval("document.searchForm" + nForm + ".searchString.value");\r
+ var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue);\r
+ SendMessage(oMsg);\r
+}\r
+\r
+function getSearchFormHTML()\r
+{\r
+ var sHTML = "";\r
+ gnForm ++;\r
+ var sFormName = "searchForm" + gnForm;\r
+ var sButton = "<form name=\"" + sFormName + "\" method=\"POST\" action=\"javascript:searchB("+ gnForm + ")\">"\r
+ sButton += "<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";\r
+ if ("" == "text")\r
+ {\r
+ sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\"></a>";\r
+ }\r
+ else if ("" == "image")\r
+ {\r
+ sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\">"\r
+ sButton+="<img src=\"\" border=0></a>";\r
+ }\r
+ sButton += "</form>";\r
+ sHTML ="<td align=\"center\">" + sButton + "</td>";\r
+ return sHTML;\r
+}\r
+\r
+function showHidePane(bShow)\r
+{\r
+ var oMsg=null;\r
+ if (bShow)\r
+ oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+ else\r
+ oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null);\r
+ SendMessage(oMsg);\r
+}\r
+\r
+function isShowHideEnable()\r
+{\r
+ if (gbIE4)\r
+ return true;\r
+ else\r
+ return false;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+ RegisterListener("bsscright", WH_MSG_GETAVIAVENUES);\r
+ RegisterListener("bsscright", WH_MSG_GETTOCPATHS);\r
+ RegisterListener("bsscright", WH_MSG_NEXT);\r
+ RegisterListener("bsscright", WH_MSG_PREV);\r
+ RegisterListener("bsscright", WH_MSG_WEBSEARCH);\r
+ if (gbMac && gbIE4)\r
+ {\r
+ if (typeof(window.onunload) != "unknown")\r
+ whtopic_foldUnload = window.onunload;\r
+ }\r
+ else\r
+ {\r
+ if (window.onunload)\r
+ whtopic_foldUnload = window.onunload;\r
+ }\r
+ window.onunload = unRegisterListener;\r
+ setButtonFont("show","","10pt","","","","");\r
+\r
+ gbWhTopic=true;\r
+}\r
+else\r
+ document.location.reload();
\ No newline at end of file