whtopic.js
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:15k
源码类别:

SNMP编程

开发平台:

C/C++

  1. var gsPPath = "";
  2. var gaPaths = new Array();
  3. var gaAvenues = new Array();
  4. var goFrame = null;
  5. var gsStartPage = "";
  6. var gsRelCurPagePath = "";
  7. var gsSearchFormHref  = "";
  8. var gnTopicOnly = -1;
  9. var gnOutmostTopic = -1;
  10. var BTN_TEXT=1;
  11. var BTN_IMG=2;
  12. var goSync = null;
  13. var goShow = null;
  14. var goHide = null;
  15. var goPrev = null;
  16. var goNext = null;
  17. var gnForm = 0;
  18. var goShowNav = null;
  19. var goHideNav = null;
  20. var goWebSearch = null;
  21. var gsBtnStyle = "";
  22. var gaButtons = new Array();
  23. var gaTypes = new Array();
  24. var whtopic_foldUnload = null;
  25. var gbWhTopic=false;
  26. var gbCheckSync=false;
  27. var gbSyncEnabled=false;
  28. function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
  29. {
  30. var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
  31. gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}";
  32. }
  33. function writeBtnStyle()
  34. {
  35. if (gaButtons.length > 0)
  36. {
  37. if (gsBtnStyle.length > 0)
  38. {
  39. var sStyle = "<style type='text/css'>";
  40. sStyle+= gsBtnStyle + "</style>";
  41. document.write(sStyle);
  42. }
  43. }
  44. }
  45. function button(sText, nWidth, nHeight)
  46. {
  47. this.sText = sText;
  48. this.nWidth = nWidth;
  49. this.nHeight = nHeight;
  50. this.aImgs = new Array();
  51. var i = 0;
  52. while (button.arguments.length > i + 3)
  53. {
  54. this.aImgs[i] = button.arguments[3 + i];
  55. i ++;
  56. }
  57. }
  58. // project info
  59. function setRelStartPage(sPath)
  60. {
  61. if (gsPPath.length == 0)
  62. {
  63. gsPPath = _getFullPath(_getPath(document.location.href),  _getPath(sPath));
  64. gsStartPage = _getFullPath(_getPath(document.location.href), sPath);
  65. gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href);
  66. }
  67. }
  68. function getImage(oImage, sType)
  69. {
  70. var sImg="";
  71. if (oImage && oImage.aImgs && (oImage.aImgs.length > 0))
  72. {
  73. sImg+="<img alt=""+ sType + "" src="" + oImage.aImgs[0] + """;
  74. if (oImage.nWidth > 0)
  75. sImg+=" width=" + oImage.nWidth;
  76. if (oImage.nHeight > 0)
  77. sImg+=" height=" + oImage.nHeight;
  78. sImg+=" border=no>";
  79. }
  80. return sImg;
  81. }
  82. function addTocInfo(sTocPath)
  83. {
  84. gaPaths[gaPaths.length] = sTocPath;
  85. }
  86. function addAvenueInfo(sName, sPrev, sNext)
  87. {
  88. gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext);
  89. }
  90. function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3)
  91. {
  92. var sButton = "";
  93. var nBtn=gaButtons.length;
  94. if (sType == "prev")
  95. {
  96. if (canGo(false))
  97. {
  98. var sTitle = "Previous Topic";
  99. goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  100. sButton = "<a title="" + sTitle + "" class="whtbtnprev" href="javascript:void(0);" onclick="goAvenue(false);return false;">";
  101. if (nStyle == BTN_TEXT)
  102. sButton += goPrev.sText;
  103. else
  104. sButton += getImage(goPrev, sTitle);
  105. sButton += "</a>";
  106. }
  107. }
  108. else if (sType == "next")
  109. {
  110. if (canGo(true))
  111. {
  112. var sTitle = "Next Topic";
  113. goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  114. sButton = "<a title="" + sTitle + "" class="whtbtnnext" href="javascript:void(0);" onclick="goAvenue(true);return false;">";
  115. if (nStyle == BTN_TEXT)
  116. sButton += goNext.sText;
  117. else
  118. sButton += getImage(goNext, sTitle);
  119. sButton += "</a>";
  120. }
  121. }
  122. else if (sType == "show")
  123. {
  124. if (isTopicOnly())
  125. {
  126. var sTitle = "Show Navigation Component";
  127. goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  128. sButton = "<a title="" + sTitle + "" class="whtbtnshow" href="javascript:void(0);" onclick="show();return false;">";
  129. if (nStyle == BTN_TEXT)
  130. sButton += goShow.sText;
  131. else
  132. sButton += getImage(goShow, sTitle);
  133. sButton += "</a>";
  134. }
  135. }
  136. else if (sType == "hide")
  137. {
  138. if (!isTopicOnly())
  139. {
  140. var sTitle = "Hide Navigation Component";
  141. goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  142. sButton = "<a title="" + sTitle + "" class="whtbtnhide" href="javascript:void(0);" onclick="hide();return false;">";
  143. if (nStyle == BTN_TEXT)
  144. sButton += goHide.sText;
  145. else
  146. sButton += getImage(goHide, sTitle);
  147. sButton += "</a>";
  148. }
  149. }
  150. else if (sType == "shownav")
  151. {
  152. if (isShowHideEnable())
  153. {
  154. var sTitle = "Show Navigation Component";
  155. goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  156. sButton = "<a title="" + sTitle + "" class="whtbtnshownav" href="javascript:void(0);" onclick="showHidePane(true);return false;">";
  157. if (nStyle == BTN_TEXT)
  158. sButton += goShowNav.sText;
  159. else
  160. sButton += getImage(goShowNav, sTitle);
  161. sButton += "</a>";
  162. }
  163. }
  164. else if (sType == "hidenav")
  165. {
  166. if (isShowHideEnable())
  167. {
  168. var sTitle = "Hide Navigation Component";
  169. goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  170. sButton = "<a title="" + sTitle + "" class="whtbtnhidenav" href="javascript:void(0);" onclick="showHidePane(false);return false;">";
  171. if (nStyle == BTN_TEXT)
  172. sButton += goHideNav.sText;
  173. else
  174. sButton += getImage(goHideNav, sTitle);
  175. sButton += "</a>";
  176. }
  177. }
  178. else if (sType == "synctoc")
  179. {
  180. if (gaPaths.length > 0)
  181. {
  182. var sTitle = "Sync TOC";
  183. goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  184. sButton = "<a title=""+ sTitle + "" class="whtbtnsynctoc" href="javascript:void(0);" onclick="syncWithShow();return false;">";
  185. if (nStyle == BTN_TEXT)
  186. sButton += goSync.sText;
  187. else
  188. sButton += getImage(goSync, sTitle);
  189. sButton += "</a>";
  190. }
  191. }
  192. else if (sType == "websearch")
  193. {
  194. if (gsSearchFormHref.length > 0)
  195. {
  196. var sTitle = "WebSearch";
  197. goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);
  198. sButton = "<a title=""+ sTitle + "" class="whtbtnwebsearch" href="" + gsSearchFormHref + "">";
  199. if (nStyle == BTN_TEXT)
  200. sButton += goWebSearch.sText;
  201. else
  202. sButton += getImage(goWebSearch, sTitle);
  203. sButton += "</a>";
  204. }
  205. }
  206. else if (sType == "searchform")
  207. {
  208. gaButtons[nBtn] = "NeedSearchForm";
  209. gaTypes[nBtn] = sType;
  210. }
  211. if (sButton.length != 0)
  212. {
  213. if (nStyle == BTN_TEXT)
  214. sButton += "&nbsp;";
  215. gaButtons[nBtn] = "<td class=navigator>" + sButton + "</td>";
  216. gaTypes[nBtn] = sType;
  217. }
  218. }
  219. function isSyncEnabled()
  220. {
  221. if (!gbCheckSync)
  222. {
  223. var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);
  224. if(SendMessage(oMsg))
  225. {
  226. gbSyncEnabled=oMsg.oParam;
  227. }
  228. gbCheckSync=true;
  229. }
  230. return gbSyncEnabled;
  231. }
  232. function isInPopup()
  233. {
  234. return (window.name.indexOf("BSSCPopup") != -1);
  235. }
  236. function getIntopicBar(sAlign)
  237. {
  238. var sHTML = "";
  239. if (gaButtons.length > 0)
  240. {
  241. sHTML += "<div align="+ sAlign + ">";
  242. sHTML += "<table cellpadding="2" class=navigator  cellspacing="0" border="0"><tr>";
  243. for (var i = 0; i < gaButtons.length; i++)
  244. {
  245. if (gaTypes[i]!="synctoc" || isSyncEnabled())
  246. {
  247. if (gaButtons[i] == "NeedSearchForm")
  248. sHTML += getSearchFormHTML();
  249. else
  250. sHTML += gaButtons[i];
  251. }
  252. }
  253. sHTML += "</tr></table>";
  254. sHTML += "</div>";
  255. }
  256. return sHTML;
  257. }
  258. function writeIntopicBar(nAligns)
  259. {
  260. if (isInPopup()) return;
  261. if (gaButtons.length > 0)
  262. {
  263. var sHTML = "";
  264. if (nAligns != 0)
  265. {
  266. sHTML += "<table width=100% class=navigator><tr>"
  267. if (nAligns & 1)
  268. sHTML += "<td width=33% class=navigator>" + getIntopicBar("left") + "</td>";
  269. if (nAligns & 2)
  270. sHTML += "<td width=34%>" + getIntopicBar("center") + "</td>";
  271. if (nAligns & 4)
  272. sHTML += "<td width=33% class=navigator>" + getIntopicBar("right") + "</td>";
  273. sHTML += "</tr></table>";
  274. document.write(sHTML);
  275. }
  276. }
  277. }
  278. function sendAveInfoOut()
  279. {
  280. if (!isInPopup())
  281. setTimeout("sendAveInfo();", 100);
  282. }
  283. function sendAveInfo()
  284. {
  285. var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues);
  286. SendMessage(oMsg);
  287. }
  288. function onNext()
  289. {
  290. var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null);
  291. SendMessage(oMsg);
  292. }
  293. function onPrev()
  294. {
  295. var oMsg = new whMessage(WH_MSG_PREV, this, 1, null);
  296. SendMessage(oMsg);
  297. }
  298. function createSyncInfo()
  299. {
  300. var oParam = new Object();
  301. if (gsPPath.length == 0)
  302. gsPPath = _getPath(document.location.href);
  303. oParam.sPPath = gsPPath;
  304. oParam.sTPath = document.location.href;
  305. oParam.aPaths = gaPaths;
  306. return oParam;
  307. }
  308. function syncWithShow()
  309. {
  310. if (isTopicOnly())
  311. show();
  312. else 
  313. {
  314. sync();
  315. showTocPane();
  316. }
  317. }
  318. function showTocPane()
  319. {
  320. var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null);
  321. SendMessage(oMsg);
  322. }
  323. function sendSyncInfo()
  324. {
  325. if (!isInPopup())
  326. {
  327. var oParam = null;
  328. if (gaPaths.length > 0)
  329. {
  330. oParam = createSyncInfo();
  331. }
  332. var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam);
  333. SendMessage(oMsg);
  334. }
  335. }
  336. function sendInvalidSyncInfo()
  337. {
  338. if (!isInPopup())
  339. {
  340. var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null);
  341. SendMessage(oMsg);
  342. }
  343. }
  344. function enableWebSearch(bEnable)
  345. {
  346. if (!isInPopup())
  347. {
  348. var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable);
  349. SendMessage(oMsg);
  350. }
  351. }
  352. function autoSync(nSync)
  353. {
  354. if (nSync == 0) return;
  355. if (isInPopup()) return;
  356. if (isOutMostTopic())
  357. sync();
  358. }
  359. function isOutMostTopic()
  360. {
  361. if (gnOutmostTopic == -1)
  362. {
  363. var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null);
  364. if (SendMessage(oMessage))
  365. gnOutmostTopic = 0;
  366. else
  367. gnOutmostTopic = 1;
  368. }
  369. return (gnOutmostTopic == 1);
  370. }
  371. function sync()
  372. {
  373. if (gaPaths.length > 0)
  374. {
  375. var oParam = createSyncInfo();
  376. var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam);
  377. SendMessage(oMessage);
  378. }
  379. }
  380. function avenueInfo(sName, sPrev, sNext)
  381. {
  382. this.sName = sName;
  383. this.sPrev = sPrev;
  384. this.sNext = sNext;
  385. }
  386. function getCurrentAvenue()
  387. {
  388. var oParam = new Object();
  389. oParam.sAvenue = null;
  390. var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam);
  391. SendMessage(oMessage);
  392. return oParam.sAvenue;
  393. }
  394. function unRegisterListener()
  395. {
  396. sendInvalidSyncInfo();
  397. enableWebSearch(false);
  398. if (whtopic_foldUnload)
  399. whtopic_foldUnload();
  400. }
  401. function onSendMessage(oMsg)
  402. {
  403. var nMsgId = oMsg.nMessageId;
  404. if (nMsgId == WH_MSG_GETAVIAVENUES)
  405. {
  406. oMsg.oParam.aAvenues = gaAvenues;
  407. return false;
  408. }
  409. else if (nMsgId == WH_MSG_GETTOCPATHS)
  410. {
  411. if (isOutMostTopic())
  412. {
  413. oMsg.oParam.oTocInfo = createSyncInfo();
  414. return false;
  415. }
  416. else
  417. return true;
  418. }
  419. else if (nMsgId == WH_MSG_NEXT)
  420. {
  421. goAvenue(true);
  422. }
  423. else if (nMsgId == WH_MSG_PREV)
  424. {
  425. goAvenue(false);
  426. }
  427. else if (nMsgId == WH_MSG_WEBSEARCH)
  428. {
  429. websearch();
  430. }
  431. return true;
  432. }
  433. function goAvenue(bNext)
  434. {
  435. var sTopic = null;
  436. var sAvenue = getCurrentAvenue();
  437. var nAvenue = -1;
  438. if (sAvenue != null && sAvenue != "")
  439. {
  440. for (var i = 0; i < gaAvenues.length ; i ++)
  441. {
  442. if (gaAvenues[i].sName == sAvenue)
  443. {
  444. nAvenue = i;
  445. break;
  446. }
  447. }
  448. if (nAvenue != -1)
  449. {
  450. if (bNext)
  451. sTopic = gaAvenues[nAvenue].sNext;
  452. else
  453. sTopic = gaAvenues[nAvenue].sPrev;
  454. }
  455. }
  456. else
  457. for (var i = 0; i < gaAvenues.length ; i ++)
  458. {
  459. if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext)
  460. {
  461. sTopic = gaAvenues[i].sNext;
  462. break;
  463. }
  464. else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)
  465. {
  466. sTopic = gaAvenues[i].sPrev;
  467. break;
  468. }
  469. }
  470. }
  471. if (sTopic != null && sTopic != "")
  472. {
  473. if (gsPPath != null && gsPPath != "")
  474. {
  475. sFullTopicPath = _getFullPath(gsPPath, sTopic);
  476. document.location = sFullTopicPath;
  477. }
  478. }
  479. }
  480. function canGo(bNext)
  481. {
  482. for (var i = 0; i < gaAvenues.length ; i ++)
  483. {
  484. if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) ||
  485. (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext))
  486. return true;
  487. }
  488. return false;
  489. }
  490. function show()
  491. {
  492. if (gsStartPage != "")
  493. window.location =  gsStartPage + "#" + gsRelCurPagePath;
  494. }
  495. function hide()
  496. {
  497. if (goFrame != null)
  498. {
  499. goFrame.location = window.location;
  500. }
  501. }
  502. function isTopicOnly()
  503. {
  504. if (gnTopicOnly == -1)
  505. {
  506. var oParam = new Object();
  507. oParam.oFrame = null;
  508. var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam);
  509. if (SendMessage(oMsg))
  510. {
  511. goFrame = oParam.oFrame;
  512. gnTopicOnly = 0;
  513. }
  514. else
  515. gnTopicOnly = 1;
  516. }
  517. if (gnTopicOnly == 1)
  518. return true;
  519. else
  520. return false;
  521. }
  522. function websearch()
  523. {
  524. if (gbNav4)
  525. {
  526. if (document.ehelpform)
  527. document.ehelpform.submit();
  528. }
  529. else
  530. {
  531. if (window.ehelpform)
  532. window.ehelpform.submit();
  533. }
  534. }
  535. function addSearchFormHref(sHref)
  536. {
  537. gsSearchFormHref = sHref;
  538. enableWebSearch(true);
  539. }
  540. function searchB(nForm)
  541. {
  542. var sValue = eval("document.searchForm" + nForm + ".searchString.value");
  543. var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue);
  544. SendMessage(oMsg);
  545. }
  546. function getSearchFormHTML()
  547. {
  548. var sHTML = "";
  549. gnForm ++;
  550. var sFormName = "searchForm" + gnForm;
  551. var sButton = "<form name="" + sFormName + "" method="POST" action="javascript:searchB("+ gnForm + ")">"
  552. sButton += "<input type="text" name="searchString" value="- Full Text search -" size="20"/>";
  553. if ("" == "text")
  554. {
  555. sButton+="<a class="searchbtn" href="javascript:void(0);" onclick="" + sFormName + ".submit(); return false;"></a>";
  556. }
  557. else if ("" == "image")
  558. {
  559. sButton+="<a class="searchbtn" href="javascript:void(0);" onclick="" + sFormName + ".submit(); return false;">"
  560. sButton+="<img src="" border=0></a>";
  561. }
  562. sButton += "</form>";
  563. sHTML ="<td align="center">" + sButton + "</td>";
  564. return sHTML;
  565. }
  566. function showHidePane(bShow)
  567. {
  568. var oMsg=null;
  569. if (bShow)
  570. oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null);
  571. else
  572.   oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null);
  573. SendMessage(oMsg);
  574. }
  575. function isShowHideEnable()
  576. {
  577. if (gbIE4)
  578. return true;
  579. else
  580. return false;
  581. }
  582. if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
  583. {
  584. RegisterListener("bsscright", WH_MSG_GETAVIAVENUES);
  585. RegisterListener("bsscright", WH_MSG_GETTOCPATHS);
  586. RegisterListener("bsscright", WH_MSG_NEXT);
  587. RegisterListener("bsscright", WH_MSG_PREV);
  588. RegisterListener("bsscright", WH_MSG_WEBSEARCH);
  589. if (gbMac && gbIE4)
  590. {
  591. if (typeof(window.onunload) != "unknown")
  592. whtopic_foldUnload = window.onunload;
  593. }
  594. else
  595. {
  596. if (window.onunload)
  597. whtopic_foldUnload = window.onunload;
  598. }
  599. window.onunload = unRegisterListener;
  600. setButtonFont("show","","10pt","","","","");
  601. gbWhTopic=true;
  602. }
  603. else
  604. document.location.reload();