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