PageRenderTime 53ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/v1.0/Help/output/scripts/script_manifold.js

#
JavaScript | 1567 lines | 1181 code | 215 blank | 171 comment | 404 complexity | 5c5a4d83e7ba99253a8ed64f6d899ea2 MD5 | raw file
  1. window.onload=LoadPage;
  2. window.onunload=Window_Unload;
  3. //window.onresize=ResizeWindow;
  4. window.onbeforeprint = set_to_print;
  5. window.onafterprint = reset_form;
  6. var vbDeclaration;
  7. var vbUsage;
  8. var csLang;
  9. var cLang;
  10. var jsharpLang;
  11. var jsLang;
  12. // AlanSm: start custom code
  13. var xamlLang;
  14. // AlanSm: end custom code
  15. var scrollPos = 0;
  16. var inheritedMembers;
  17. var protectedMembers;
  18. var netcfMembersOnly;
  19. // Initialize array of section states
  20. var sectionStates = new Array();
  21. var sectionStatesInitialized = false;
  22. var allCollapsed = false;
  23. var allExpanded = false;
  24. //Hide sample source in select element
  25. function HideSelect()
  26. {
  27. var selectTags = document.body.all.tags("SELECT");
  28. var spanEles = document.body.all.tags("span");
  29. var i = 10;
  30. var m;
  31. if (selectTags.length != null || selectTags.length >0)
  32. {
  33. for (n=0; n<selectTags.length; n++)
  34. {
  35. var lan = selectTags(n).id.substr("10");
  36. //hide the first select that is on
  37. switch (lan.toLowerCase())
  38. {
  39. case "visualbasic":
  40. //alert(lan);
  41. for (m=0; m<spanEles.length; m++)
  42. {
  43. if (spanEles[m].codeLanguage == "VisualBasic" && spanEles[m].style.display != "none" && n <i)
  44. i = n;
  45. }
  46. break;
  47. case "visualbasicdeclaration":
  48. for (m=0; m<spanEles.length; m++)
  49. {
  50. if (spanEles[m].codeLanguage == "VisualBasicDeclaration" && spanEles[m].style.display != "none" && n < i)
  51. i = n;
  52. }
  53. break;
  54. case "visualbasicusage":
  55. //alert(lan);
  56. for (m=0; m<spanEles.length; m++)
  57. {
  58. if (spanEles[m].codeLanguage == "VisualBasicUsage" && spanEles[m].style.display != "none" && n <i)
  59. i = n;
  60. }
  61. break;
  62. case "csharp":
  63. for (m=0; m<spanEles.length; m++)
  64. {
  65. if (spanEles[m].codeLanguage == "CSharp" && spanEles[m].style.display != "none" && n < i)
  66. i = n;
  67. }
  68. break;
  69. case "managedcplusplus":
  70. for (m=0; m<spanEles.length; m++)
  71. {
  72. if (spanEles[m].codeLanguage == "ManagedCPlusPlus" && spanEles[m].style.display != "none" && n < i)
  73. i = n;
  74. }
  75. break;
  76. case "jsharp":
  77. for (m=0; m<spanEles.length; m++)
  78. {
  79. if (spanEles[m].codeLanguage == "JSharp" && spanEles[m].style.display != "none" && n < i)
  80. i = n;
  81. }
  82. break;
  83. case "jscript":
  84. for (m=0; m<spanEles.length; m++)
  85. {
  86. if (spanEles[m].codeLanguage == "JScript" && spanEles[m].style.display != "none" && n < i)
  87. i = n;
  88. }
  89. break;
  90. case "xaml":
  91. //alert(lan);
  92. for (m=0; m<spanEles.length; m++)
  93. {
  94. if (spanEles[m].codeLanguage == "XAML" && spanEles[m].style.display != "none" && n <i)
  95. i = n;
  96. }
  97. break;
  98. }
  99. }
  100. if (i != 10)
  101. selectTags(i).style.visibility = "hidden";
  102. }
  103. else{ alert("Not found!");}
  104. }
  105. function UnHideSelect()
  106. {
  107. var selectTags = document.body.all.tags("SELECT");
  108. var n;
  109. //un-hide all the select sections
  110. if (selectTags.length != null || selectTags.length >0)
  111. {
  112. for (n=0; n<selectTags.length; n++)
  113. selectTags(n).style.visibility = "visible";
  114. }
  115. }
  116. function InitSectionStates()
  117. {
  118. // SectionStates has the format:
  119. //
  120. // firstSectionId:state;secondSectionId:state;thirdSectionId:state; ... ;lastSectionId:state
  121. //
  122. // where state is either "e" (expanded) or "c" (collapsed)
  123. allExpanded = Load("AllExpanded");
  124. allCollapsed = Load("AllCollapsed");
  125. if (allExpanded == null || allCollapsed == null)
  126. {
  127. allExpanded = true;
  128. allCollapsed = false;
  129. }
  130. var states = Load("SectionStates");
  131. if (states == null || states == "") return;
  132. var start = 0;
  133. var end;
  134. var section;
  135. var state;
  136. while (start < states.length)
  137. {
  138. end = states.indexOf(":", start);
  139. section = states.substring(start, end);
  140. start = end + 1;
  141. end = states.indexOf(";", start);
  142. if (end == -1) end = states.length;
  143. state = states.substring(start, end);
  144. sectionStates[section] = (allExpanded) ? "e" : state;
  145. start = end + 1;
  146. }
  147. }
  148. var noReentry = false;
  149. function OnLoadImage()
  150. {
  151. if (noReentry) return;
  152. if (!sectionStatesInitialized)
  153. {
  154. globals = GetGlobals();
  155. InitSectionStates();
  156. sectionStatesInitialized = true;
  157. }
  158. elem = event.srcElement;
  159. if (sectionStates[elem.id] == null) sectionStates[elem.id] = GetDefaultState();
  160. if (ShouldExpand(elem))
  161. {
  162. noReentry = true;
  163. try
  164. {
  165. elem.src = collapseImage.src;
  166. elem.alt = collapseImage.alt;
  167. ExpandSection(elem);
  168. }
  169. catch (e)
  170. {
  171. }
  172. noReentry = false;
  173. }
  174. }
  175. function GetDefaultState()
  176. {
  177. if (allExpanded) return "e";
  178. if (allCollapsed) return "c";
  179. return "e";
  180. }
  181. function ShouldExpand(elem)
  182. {
  183. return (allExpanded || sectionStates[elem.id] == "e");
  184. }
  185. /*
  186. **********
  187. ********** Begin
  188. **********
  189. */
  190. function LoadPage()
  191. {
  192. // If not initialized, grab the DTE.Globals object
  193. if (globals == null) globals = GetGlobals();
  194. // show correct language
  195. LoadLanguages();
  196. LoadMembersOptions();
  197. Set_up_checkboxes();
  198. DisplayLanguages();
  199. DisplayFilteredMembers();
  200. ChangeMembersOptionsFilterLabel();
  201. SetCollapseAll();
  202. // ResizeWindow();
  203. // split screen
  204. var screen = new SplitScreen('header', 'mainSection');
  205. // filtering dropdowns
  206. if (document.getElementById('languageSpan') != null) {
  207. var languageMenu = new Dropdown('languageFilterToolTip', 'languageSpan');
  208. }
  209. if (document.getElementById('membersOptionsFilterToolTip') != null) {
  210. var languageMenu = new Dropdown('membersOptionsFilterToolTip', 'membersOptionsSpan');
  211. }
  212. // vs70.js did this to allow up/down arrow scrolling, I think
  213. try { mainSection.setActive(); } catch(e) { }
  214. //set the scroll position
  215. try{mainSection.scrollTop = scrollPos;}
  216. catch(e){}
  217. }
  218. function Window_Unload()
  219. {
  220. SaveLanguages();
  221. SaveMembersOptions();
  222. SaveSections();
  223. }
  224. /*
  225. function ResizeWindow()
  226. {
  227. if (document.body.clientWidth==0) return;
  228. var header = document.all.item("header");
  229. var mainSection = document.all.item("mainSection");
  230. if (mainSection == null) return;
  231. document.body.scroll = "no"
  232. mainSection.style.overflow= "auto";
  233. header.style.width= document.body.offsetWidth - 2;
  234. //mainSection.style.paddingRight = "20px"; // Width issue code
  235. mainSection.style.width= document.body.offsetWidth - 2;
  236. mainSection.style.top=0;
  237. if (document.body.offsetHeight > header.offsetHeight + 10)
  238. mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 2);
  239. else
  240. mainSection.style.height=0;
  241. try
  242. {
  243. mainSection.setActive();
  244. }
  245. catch(e)
  246. {
  247. }
  248. }
  249. */
  250. function set_to_print()
  251. {
  252. //breaks out of divs to print
  253. var i;
  254. if (window.text)document.all.text.style.height = "auto";
  255. for (i=0; i < document.all.length; i++)
  256. {
  257. if (document.all[i].tagName == "body")
  258. {
  259. document.all[i].scroll = "yes";
  260. }
  261. if (document.all[i].id == "header")
  262. {
  263. document.all[i].style.margin = "0px 0px 0px 0px";
  264. document.all[i].style.width = "100%";
  265. }
  266. if (document.all[i].id == "mainSection")
  267. {
  268. document.all[i].style.overflow = "visible";
  269. document.all[i].style.top = "5px";
  270. document.all[i].style.width = "100%";
  271. document.all[i].style.padding = "0px 10px 0px 30px";
  272. }
  273. }
  274. }
  275. function reset_form()
  276. {
  277. //returns to the div nonscrolling region after print
  278. document.location.reload();
  279. }
  280. function Set_up_checkboxes()
  281. {
  282. var checkbox;
  283. checkbox = document.getElementById("vbDeclarationCheckbox");
  284. if(checkbox != null)
  285. {
  286. if(vbDeclaration == "on")
  287. checkbox.checked = true;
  288. else
  289. checkbox.checked = false;
  290. }
  291. checkbox = document.getElementById("vbUsageCheckbox");
  292. if(checkbox != null)
  293. {
  294. if(vbUsage == "on")
  295. checkbox.checked = true;
  296. else
  297. checkbox.checked = false;
  298. }
  299. checkbox = document.getElementById("csCheckbox");
  300. if(checkbox != null)
  301. {
  302. if(csLang == "on")
  303. checkbox.checked = true;
  304. else
  305. checkbox.checked = false;
  306. }
  307. checkbox = document.getElementById("cCheckbox");
  308. if(checkbox != null)
  309. {
  310. if(cLang == "on")
  311. checkbox.checked = true;
  312. else
  313. checkbox.checked = false;
  314. }
  315. checkbox = document.getElementById("jsharpCheckbox");
  316. if(checkbox != null)
  317. {
  318. if(jsharpLang == "on")
  319. checkbox.checked = true;
  320. else
  321. checkbox.checked = false;
  322. }
  323. checkbox = document.getElementById("jsCheckbox");
  324. if(checkbox != null)
  325. {
  326. if(jsLang == "on")
  327. checkbox.checked = true;
  328. else
  329. checkbox.checked = false;
  330. }
  331. checkbox = document.getElementById("inheritedCheckbox");
  332. if(checkbox != null)
  333. {
  334. if(inheritedMembers == "on")
  335. checkbox.checked = true;
  336. else
  337. checkbox.checked = false;
  338. }
  339. checkbox = document.getElementById("protectedCheckbox");
  340. if(checkbox != null)
  341. {
  342. if(protectedMembers == "on")
  343. checkbox.checked = true;
  344. else
  345. checkbox.checked = false;
  346. }
  347. checkbox = document.getElementById("netcfCheckbox");
  348. if(checkbox != null)
  349. {
  350. if(netcfMembersOnly == "on")
  351. checkbox.checked = true;
  352. else
  353. checkbox.checked = false;
  354. }
  355. // AlanSm: start custom code
  356. checkbox = document.getElementById("xamlCheckbox");
  357. if(checkbox != null)
  358. {
  359. if(xamlLang == "on")
  360. checkbox.checked = true;
  361. else
  362. checkbox.checked = false;
  363. }
  364. // AlanSm: end custom code
  365. }
  366. /*
  367. **********
  368. ********** End
  369. **********
  370. */
  371. /*
  372. **********
  373. ********** Begin Language Filtering
  374. **********
  375. */
  376. function SetLanguage(key)
  377. {
  378. var i = 0;
  379. if(vbDeclaration == "on")
  380. i++;
  381. if(vbUsage == "on")
  382. i++;
  383. if(csLang == "on")
  384. i++;
  385. if(cLang == "on")
  386. i++;
  387. if(jsharpLang == "on")
  388. i++;
  389. if(jsLang == "on")
  390. i++;
  391. // AlanSm: start custom code
  392. if(xamlLang == "on")
  393. i++;
  394. // AlanSm: end custom code
  395. if(key.id == "vbDeclarationCheckbox")
  396. {
  397. if(vbDeclaration == "on")
  398. {
  399. if(i == 1)
  400. {
  401. key.checked = true;
  402. return;
  403. }
  404. vbDeclaration = "off";
  405. }
  406. else
  407. vbDeclaration = "on";
  408. }
  409. if(key.id == "vbUsageCheckbox")
  410. {
  411. if(vbUsage == "on")
  412. {
  413. if(i == 1)
  414. {
  415. key.checked = true;
  416. return;
  417. }
  418. vbUsage = "off";
  419. }
  420. else
  421. vbUsage = "on";
  422. }
  423. if(key.id == "csCheckbox")
  424. {
  425. if(csLang == "on")
  426. {
  427. if(i == 1)
  428. {
  429. key.checked = true;
  430. return;
  431. }
  432. csLang = "off";
  433. }
  434. else
  435. csLang = "on";
  436. }
  437. if(key.id == "cCheckbox")
  438. {
  439. if(cLang == "on")
  440. {
  441. if(i == 1)
  442. {
  443. key.checked = true;
  444. return;
  445. }
  446. cLang = "off";
  447. }
  448. else
  449. cLang = "on";
  450. }
  451. if(key.id == "jsharpCheckbox")
  452. {
  453. if(jsharpLang == "on")
  454. {
  455. if(i == 1)
  456. {
  457. key.checked = true;
  458. return;
  459. }
  460. jsharpLang = "off";
  461. }
  462. else
  463. jsharpLang = "on";
  464. }
  465. if(key.id == "jsCheckbox")
  466. {
  467. if(jsLang == "on")
  468. {
  469. if(i == 1)
  470. {
  471. key.checked = true;
  472. return;
  473. }
  474. jsLang = "off";
  475. }
  476. else
  477. jsLang = "on";
  478. }
  479. // AlanSm: start custom code
  480. if(key.id == "xamlCheckbox")
  481. {
  482. if(xamlLang == "on")
  483. {
  484. if(i == 1)
  485. {
  486. key.checked = true;
  487. return;
  488. }
  489. xamlLang = "off";
  490. }
  491. else
  492. xamlLang = "on";
  493. }
  494. // AlanSm: end custom code
  495. DisplayLanguages();
  496. }
  497. function DisplayLanguages()
  498. {
  499. var spanElements = document.all.tags("span");
  500. var x = 0;
  501. if(vbDeclaration == "on")
  502. x++;
  503. if(vbUsage == "on")
  504. x++;
  505. if(csLang == "on")
  506. x++;
  507. if(cLang == "on")
  508. x++;
  509. if(jsharpLang == "on")
  510. x++;
  511. if(jsLang == "on")
  512. x++;
  513. // AlanSm: start custom code
  514. if(xamlLang == "on")
  515. x++;
  516. // AlanSm: end custom code
  517. var i;
  518. for(i = 0; i < spanElements.length; ++i)
  519. {
  520. if(spanElements[i].codeLanguage != null)
  521. {
  522. if(spanElements[i].codeLanguage == "VisualBasic")
  523. {
  524. if(vbDeclaration == "on" || vbUsage == "on")
  525. spanElements[i].style.display = "";
  526. else
  527. spanElements[i].style.display = "none";
  528. }
  529. if(spanElements[i].codeLanguage == "VisualBasicDeclaration")
  530. {
  531. if(vbDeclaration == "on")
  532. spanElements[i].style.display = "";
  533. else
  534. spanElements[i].style.display = "none";
  535. }
  536. if(spanElements[i].codeLanguage == "VisualBasicUsage")
  537. {
  538. if(vbUsage == "on")
  539. spanElements[i].style.display = "";
  540. else
  541. spanElements[i].style.display = "none";
  542. }
  543. if(spanElements[i].codeLanguage == "CSharp")
  544. {
  545. if(csLang == "on")
  546. spanElements[i].style.display = "";
  547. else
  548. spanElements[i].style.display = "none";
  549. }
  550. if(spanElements[i].codeLanguage == "ManagedCPlusPlus")
  551. {
  552. if(cLang == "on")
  553. spanElements[i].style.display = "";
  554. else
  555. spanElements[i].style.display = "none";
  556. }
  557. if(spanElements[i].codeLanguage == "JSharp")
  558. {
  559. if(jsharpLang == "on")
  560. spanElements[i].style.display = "";
  561. else
  562. spanElements[i].style.display = "none";
  563. }
  564. if(spanElements[i].codeLanguage == "JScript")
  565. {
  566. if(jsLang == "on")
  567. spanElements[i].style.display = "";
  568. else
  569. spanElements[i].style.display = "none";
  570. }
  571. // AlanSm: start custom code
  572. if(spanElements[i].codeLanguage == "XAML")
  573. {
  574. if(xamlLang == "on")
  575. spanElements[i].style.display = "";
  576. else
  577. spanElements[i].style.display = "none";
  578. }
  579. // AlanSm: end custom code
  580. if(spanElements[i].codeLanguage == "NotVisualBasicUsage")
  581. {
  582. if((x == 1) && (vbUsage == "on"))
  583. {
  584. spanElements[i].style.display = "none";
  585. }
  586. else
  587. {
  588. spanElements[i].style.display = "";
  589. }
  590. }
  591. }
  592. }
  593. ChangeLanguageFilterLabel();
  594. }
  595. function ChangeLanguageFilterLabel()
  596. {
  597. var i = 0;
  598. if(vbDeclaration == "on")
  599. i++;
  600. if(vbUsage == "on")
  601. i++;
  602. if(csLang == "on")
  603. i++;
  604. if(cLang == "on")
  605. i++;
  606. if(jsharpLang == "on")
  607. i++;
  608. if(jsLang == "on")
  609. i++;
  610. // AlanSm: start custom code
  611. if(xamlLang == "on")
  612. i++;
  613. // AlanSm: end custom code
  614. var labelElement;
  615. labelElement = document.getElementById("showAllLabel");
  616. if(labelElement == null)
  617. return;
  618. labelElement.style.display = "none";
  619. labelElement = document.getElementById("multipleLabel");
  620. labelElement.style.display = "none";
  621. labelElement = document.getElementById("vbLabel");
  622. labelElement.style.display = "none";
  623. labelElement = document.getElementById("csLabel");
  624. labelElement.style.display = "none";
  625. labelElement = document.getElementById("cLabel");
  626. labelElement.style.display = "none";
  627. labelElement = document.getElementById("jsharpLabel");
  628. labelElement.style.display = "none";
  629. labelElement = document.getElementById("jsLabel");
  630. labelElement.style.display = "none";
  631. // AlanSm: start custom code
  632. labelElement = document.getElementById("xamlLabel");
  633. labelElement.style.display = "none";
  634. if(i == 7)
  635. // AlanSm: end custom code
  636. {
  637. labelElement = document.getElementById("showAllLabel");
  638. labelElement.style.display = "inline";
  639. }
  640. // AlanSm: start custom code
  641. else if ((i > 1) && (i < 7))
  642. // AlanSm: end custom code
  643. {
  644. if((i == 2) && ((vbDeclaration == "on") && (vbUsage == "on")))
  645. {
  646. labelElement = document.getElementById("vbLabel");
  647. labelElement.style.display = "inline";
  648. }
  649. else
  650. {
  651. labelElement = document.getElementById("multipleLabel");
  652. labelElement.style.display = "inline";
  653. }
  654. }
  655. else if (i == 1)
  656. {
  657. if(vbDeclaration == "on" || vbUsage == "on")
  658. {
  659. labelElement = document.getElementById("vbLabel");
  660. labelElement.style.display = "inline";
  661. }
  662. if(csLang == "on")
  663. {
  664. labelElement = document.getElementById("csLabel");
  665. labelElement.style.display = "inline";
  666. }
  667. if(cLang == "on")
  668. {
  669. labelElement = document.getElementById("cLabel");
  670. labelElement.style.display = "inline";
  671. }
  672. if(jsharpLang == "on")
  673. {
  674. labelElement = document.getElementById("jsharpLabel");
  675. labelElement.style.display = "inline";
  676. }
  677. if(jsLang == "on")
  678. {
  679. labelElement = document.getElementById("jsLabel");
  680. labelElement.style.display = "inline";
  681. }
  682. // AlanSm: start custom code
  683. if(xamlLang == "on")
  684. {
  685. labelElement = document.getElementById("xamlLabel");
  686. labelElement.style.display = "inline";
  687. }
  688. // AlanSm: end custom code
  689. }
  690. }
  691. function LoadLanguages()
  692. {
  693. var value;
  694. value = Load("vbDeclaration");
  695. if(value == null)
  696. vbDeclaration = "on";
  697. else
  698. vbDeclaration = value;
  699. value = Load("vbUsage");
  700. if(value == null)
  701. vbUsage = "on";
  702. else
  703. vbUsage = value;
  704. value = Load("csLang");
  705. if(value == null)
  706. csLang = "on";
  707. else
  708. csLang = value;
  709. value = Load("cLang");
  710. if(value == null)
  711. cLang = "on";
  712. else
  713. cLang = value;
  714. value = Load("jsharpLang");
  715. if(value == null)
  716. jsharpLang = "on";
  717. else
  718. jsharpLang = value;
  719. value = Load("jsLang");
  720. if(value == null)
  721. jsLang = "on";
  722. else
  723. jsLang = value;
  724. // AlanSm: start custom code
  725. value = Load("xamlLang");
  726. if(value == null)
  727. xamlLang = "on";
  728. else
  729. xamlLang = value;
  730. // AlanSm: end custom code
  731. }
  732. function SaveLanguages()
  733. {
  734. Save("vbDeclaration", vbDeclaration);
  735. Save("vbUsage", vbUsage);
  736. Save("csLang", csLang);
  737. Save("cLang", cLang);
  738. Save("jsharpLang", jsharpLang);
  739. Save("jsLang", jsLang);
  740. // AlanSm: start custom code
  741. Save("xamlLang", xamlLang);
  742. // AlanSm: end custom code
  743. }
  744. /*
  745. **********
  746. ********** End Language Filtering
  747. **********
  748. */
  749. /*
  750. **********
  751. ********** Begin Members Options Filtering
  752. **********
  753. */
  754. function SetMembersOptions(key)
  755. {
  756. if(key.id == "inheritedCheckbox")
  757. {
  758. if(key.checked == true)
  759. inheritedMembers = "on";
  760. else
  761. inheritedMembers = "off";
  762. }
  763. if(key.id == "protectedCheckbox")
  764. {
  765. if(key.checked == true)
  766. protectedMembers = "on";
  767. else
  768. protectedMembers = "off";
  769. }
  770. if(key.id == "netcfCheckbox")
  771. {
  772. if(key.checked == true)
  773. netcfMembersOnly = "on";
  774. else
  775. netcfMembersOnly = "off";
  776. }
  777. DisplayFilteredMembers();
  778. ChangeMembersOptionsFilterLabel();
  779. }
  780. function DisplayFilteredMembers()
  781. {
  782. var iAllMembers = document.all.tags("tr");
  783. var i;
  784. for(i = 0; i < iAllMembers.length; ++i)
  785. {
  786. if (((iAllMembers[i].protected == "true") && (protectedMembers == "off")) ||
  787. ((iAllMembers[i].name == "inheritedMember") && (inheritedMembers == "off")) ||
  788. ((iAllMembers[i].notSupportedOn == "netcf") && (netcfMembersOnly == "on")))
  789. iAllMembers[i].style.display = "none";
  790. else
  791. iAllMembers[i].style.display = "";
  792. }
  793. }
  794. function ChangeMembersOptionsFilterLabel()
  795. {
  796. var filtered = false;
  797. if((inheritedMembers=="off") || (protectedMembers=="off") || (netcfMembersOnly=="on"))
  798. filtered = true;
  799. var labelElement;
  800. labelElement = document.getElementById("showAllMembersLabel");
  801. if(labelElement == null)
  802. return;
  803. labelElement.style.display = "none";
  804. labelElement = document.getElementById("filteredMembersLabel");
  805. labelElement.style.display = "none";
  806. if(filtered)
  807. {
  808. labelElement = document.getElementById("filteredMembersLabel");
  809. labelElement.style.display = "inline";
  810. }
  811. else
  812. {
  813. labelElement = document.getElementById("showAllMembersLabel");
  814. labelElement.style.display = "inline";
  815. }
  816. }
  817. function LoadMembersOptions()
  818. {
  819. var value;
  820. value = Load("inheritedMembers");
  821. if(value == null)
  822. inheritedMembers = "on";
  823. else
  824. inheritedMembers = value;
  825. value = Load("protectedMembers");
  826. if(value == null)
  827. protectedMembers = "on";
  828. else
  829. protectedMembers = value;
  830. value = Load("netcfMembersOnly");
  831. if(value == null)
  832. netcfMembersOnly = "off";
  833. else
  834. netcfMembersOnly = value;
  835. }
  836. function SaveMembersOptions()
  837. {
  838. Save("inheritedMembers", inheritedMembers);
  839. Save("protectedMembers", protectedMembers);
  840. Save("netcfMembersOnly", netcfMembersOnly);
  841. }
  842. /*
  843. **********
  844. ********** End Members Options Filtering
  845. **********
  846. */
  847. /*
  848. **********
  849. ********** Begin Expand/Collapse
  850. **********
  851. */
  852. function ExpandCollapse(imageItem)
  853. {
  854. noReentry = true; // Prevent entry to OnLoadImage
  855. if (ItemCollapsed(imageItem.id) == true)
  856. {
  857. imageItem.src = collapseImage.src;
  858. imageItem.alt = collapseImage.alt;
  859. ExpandSection(imageItem);
  860. if (imageItem.id.indexOf("Family", 0) == 0)
  861. {
  862. protectedMembers = "on";
  863. Set_up_checkboxes();
  864. ChangeMembersOptionsFilterLabel();
  865. }
  866. }
  867. else
  868. {
  869. imageItem.src = expandImage.src;
  870. imageItem.alt = expandImage.alt;
  871. CollapseSection(imageItem);
  872. }
  873. allCollapsed = false;
  874. allExpanded = false;
  875. SetCollapseAll();
  876. noReentry = false;
  877. }
  878. function ExpandCollapseAll(imageItem)
  879. {
  880. noReentry = true; // Prevent entry to OnLoadImage
  881. var imgElements = document.getElementsByName("toggleSwitch");
  882. var i;
  883. if (imageItem.src == expandAllImage.src)
  884. {
  885. imageItem.src = collapseAllImage.src;
  886. imageItem.alt = collapseAllImage.alt;
  887. for (i = 0; i < imgElements.length; ++i)
  888. {
  889. imgElements[i].src = collapseImage.src;
  890. imgElements[i].alt = collapseImage.alt;
  891. ExpandSection(imgElements[i]);
  892. if (imgElements[i].id.indexOf("Family", 0) == 0) protectedMembers = "on";
  893. }
  894. SetToggleAllLabel(false);
  895. allExpanded = true;
  896. allCollapsed = false;
  897. }
  898. else
  899. {
  900. imageItem.src = expandAllImage.src;
  901. imageItem.alt = expandAllImage.alt;
  902. for (i = 0; i < imgElements.length; ++i)
  903. {
  904. imgElements[i].src = expandImage.src;
  905. imgElements[i].alt = expandImage.alt;
  906. CollapseSection(imgElements[i]);
  907. }
  908. SetToggleAllLabel(true);
  909. allExpanded = false;
  910. allCollapsed = true;
  911. }
  912. noReentry = false;
  913. }
  914. function ExpandCollapse_CheckKey(imageItem)
  915. {
  916. if(window.event.keyCode == 13)
  917. ExpandCollapse(imageItem);
  918. }
  919. function ExpandCollapseAll_CheckKey(imageItem)
  920. {
  921. if(window.event.keyCode == 13)
  922. ExpandCollapseAll(imageItem);
  923. }
  924. function ExpandSection(imageItem)
  925. {
  926. imageItem.parentElement.parentElement.nextSibling.style.display = "";
  927. sectionStates[imageItem.id] = "e";
  928. }
  929. function CollapseSection(imageItem)
  930. {
  931. imageItem.parentElement.parentElement.nextSibling.style.display = "none";
  932. sectionStates[imageItem.id] = "c";
  933. }
  934. function SetCollapseAll()
  935. {
  936. var imageElement = document.getElementById("toggleAllImage");
  937. if (imageElement == null) return;
  938. if (allCollapsed)
  939. {
  940. imageElement.src = expandAllImage.src;
  941. imageElement.alt = expandAllImage.alt;
  942. }
  943. else
  944. {
  945. imageElement.src = collapseAllImage.src;
  946. imageElement.alt = collapseAllImage.alt;
  947. }
  948. SetToggleAllLabel(allCollapsed);
  949. }
  950. function SetToggleAllLabel(collapseAll)
  951. {
  952. var labelElement = document.getElementById("collapseAllLabel");
  953. if (labelElement == null) return;
  954. labelElement.style.display = "none";
  955. labelElement = document.getElementById("expandAllLabel");
  956. labelElement.style.display = "none";
  957. if (collapseAll)
  958. {
  959. labelElement = document.getElementById("expandAllLabel");
  960. labelElement.style.display = "inline";
  961. }
  962. else
  963. {
  964. labelElement = document.getElementById("collapseAllLabel");
  965. labelElement.style.display = "inline";
  966. }
  967. }
  968. function ItemCollapsed(imageId)
  969. {
  970. return sectionStates[imageId] == "c";
  971. }
  972. function SaveSections()
  973. {
  974. try
  975. {
  976. var states = "";
  977. for (var sectionId in sectionStates) states += sectionId + ":" + sectionStates[sectionId] + ";";
  978. Save("SectionStates", states.substring(0, states.length - 1));
  979. }
  980. catch (e)
  981. {
  982. }
  983. Save("AllExpanded", allExpanded);
  984. Save("AllCollapsed", allCollapsed);
  985. }
  986. function ShouldSave(imageId)
  987. {
  988. var toggleName;
  989. if(imageId == "toggleAllImage")
  990. return false;
  991. toggleName = "procedureToggle";
  992. if(imageId.indexOf(toggleName, 0) == 0)
  993. return false;
  994. toggleName = "sectionToggle";
  995. if(imageId.indexOf(toggleName, 0) == 0)
  996. return false;
  997. return true;
  998. }
  999. function OpenSection(imageItem)
  1000. {
  1001. if (sectionStates[imageItem.id] == "c") ExpandCollapse(imageItem);
  1002. }
  1003. /*
  1004. **********
  1005. ********** End Expand/Collapse
  1006. **********
  1007. */
  1008. /*
  1009. **********
  1010. ********** Begin Copy Code
  1011. **********
  1012. */
  1013. function CopyCode(key)
  1014. {
  1015. var trElements = document.all.tags("tr");
  1016. var i;
  1017. for(i = 0; i < trElements.length; ++i)
  1018. {
  1019. if(key.parentElement.parentElement.parentElement == trElements[i].parentElement)
  1020. {
  1021. window.clipboardData.setData("Text", trElements[i].innerText);
  1022. }
  1023. }
  1024. }
  1025. function ChangeCopyCodeIcon(key)
  1026. {
  1027. var i;
  1028. var imageElements = document.getElementsByName("ccImage")
  1029. for(i=0; i<imageElements.length; ++i)
  1030. {
  1031. if(imageElements[i].parentElement == key)
  1032. {
  1033. if(imageElements[i].src == copyImage.src)
  1034. {
  1035. imageElements[i].src = copyHoverImage.src;
  1036. imageElements[i].alt = copyHoverImage.alt;
  1037. }
  1038. else
  1039. {
  1040. imageElements[i].src = copyImage.src;
  1041. imageElements[i].alt = copyImage.alt;
  1042. }
  1043. }
  1044. }
  1045. }
  1046. function CopyCode_CheckKey(key)
  1047. {
  1048. if(window.event.keyCode == 13)
  1049. CopyCode(key);
  1050. }
  1051. /*
  1052. **********
  1053. ********** End Copy Code
  1054. **********
  1055. */
  1056. /*
  1057. **********
  1058. ********** Begin Maintain Scroll Position
  1059. **********
  1060. */
  1061. function loadAll(){
  1062. try
  1063. {
  1064. scrollPos = allHistory.getAttribute("Scroll");
  1065. }
  1066. catch(e){}
  1067. }
  1068. function saveAll(){
  1069. try
  1070. {
  1071. allHistory.setAttribute("Scroll", mainSection.scrollTop);
  1072. }
  1073. catch(e){}
  1074. }
  1075. /*
  1076. **********
  1077. ********** End Maintain Scroll Position
  1078. **********
  1079. */
  1080. /*
  1081. **********
  1082. ********** Begin Send Mail
  1083. **********
  1084. */
  1085. function formatMailToLink(anchor)
  1086. {
  1087. var release = "Release: " + anchor.doc_Release;
  1088. var topicId = "Topic ID: " + anchor.doc_TopicID;
  1089. var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
  1090. var url = "URL: " + document.URL;
  1091. var browser = "Browser: " + window.navigator.userAgent;
  1092. var crlf = "%0d%0a";
  1093. var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
  1094. anchor.href = anchor.href + "&body=" + body;
  1095. }
  1096. /*
  1097. **********
  1098. ********** End Send Mail
  1099. **********
  1100. */
  1101. /*
  1102. **********
  1103. ********** Begin Persistence
  1104. **********
  1105. */
  1106. var globals;
  1107. function GetGlobals()
  1108. {
  1109. var tmp;
  1110. // Try to get VS implementation
  1111. try { tmp = window.external.Globals; }
  1112. catch (e) { tmp = null; }
  1113. // Try to get DExplore implementation
  1114. try { if (tmp == null) tmp = window.external.GetObject("DTE", "").Globals; }
  1115. catch (e) { tmp = null; }
  1116. return tmp;
  1117. }
  1118. function Load(key)
  1119. {
  1120. try
  1121. {
  1122. return globals.VariableExists(key) ? globals.VariableValue(key) : null;
  1123. }
  1124. catch (e)
  1125. {
  1126. return null;
  1127. }
  1128. }
  1129. function Save(key, value)
  1130. {
  1131. try
  1132. {
  1133. globals.VariableValue(key) = value;
  1134. globals.VariablePersists(key) = true;
  1135. }
  1136. catch (e)
  1137. {
  1138. }
  1139. }
  1140. /*
  1141. **********
  1142. ********** End Persistence
  1143. **********
  1144. */
  1145. // AlanSm: start custom code
  1146. /* This is the part for Glossary popups */
  1147. // The method is called when the user positions the mouse cursor over a glossary term in a document.
  1148. // Current implementation assumes the existence of an associative array (g_glossary).
  1149. // The keys of the array correspond to the argument passed to this function.
  1150. var bGlossary=true;
  1151. var oDialog;
  1152. var oTimeout="";
  1153. var oTimein="";
  1154. var iTimein=.5;
  1155. var iTimeout=30;
  1156. var oLastNode;
  1157. var oNode;
  1158. var bInit=false;
  1159. var aTerms=new Array();
  1160. // Called from mouseover and when the contextmenu behavior fires oncontextopen.
  1161. function clearDef(){
  1162. if((event)&&(event.toElement!=null)){
  1163. if(typeof(oTimein)=="number"){
  1164. window.clearTimeout(oTimein);
  1165. }
  1166. if(oDialog.dlg_status==true){
  1167. hideDef();
  1168. }
  1169. }
  1170. }
  1171. function hideDef(){
  1172. window.clearTimeout(oTimeout);
  1173. oTimeout="";
  1174. oDialog.style.display="none";
  1175. oDialog.dlg_status=false;
  1176. }
  1177. function showDef(oSource){
  1178. if(bInit==false){
  1179. glossaryInit();
  1180. bInit=true;
  1181. }
  1182. if(bGlossary==true){
  1183. if(typeof(arguments[0])=="object"){
  1184. oNode=oSource;
  1185. }
  1186. else{
  1187. oNode=window.event.srcElement;
  1188. }
  1189. var bStatus=oDialog.dlg_status; // BUGBUG: oDialog is null.
  1190. if((oLastNode!=oNode)||(bStatus==false)){
  1191. if((typeof(oTimein)=="number")&&(event)&&(event.fromElement!=null)){
  1192. window.clearTimeout(oTimein);
  1193. }
  1194. oTimein=window.setTimeout("openDialog(oNode)",iTimein*1000);
  1195. }
  1196. }
  1197. }
  1198. function glossaryInit(){
  1199. oDialog=fnCreateDialog(150,50);
  1200. }
  1201. function navigateTerm(){
  1202. var oNode=event.srcElement;
  1203. var iTermID=oNode.termID;
  1204. if(oNode!=aTerms[iTermID]){
  1205. var iAbsTop=getAbsoluteTop(aTerms[iTermID]);
  1206. if(iAbsTop<document.body.scrollTop){
  1207. window.scrollTo(document.body.scrollLeft,getAbsoluteTop(aTerms[iTermID]));
  1208. }
  1209. openDialog(aTerms[iTermID]);
  1210. }
  1211. }
  1212. function disableGlossary(){
  1213. if(bGlossary==true){
  1214. event.srcElement.innerText="Enable Automatic Glossary";
  1215. bGlossary=false;
  1216. hideDef();
  1217. }
  1218. else{
  1219. event.srcElement.innerText="Disable Automatic Glossary";
  1220. bGlossary=true;
  1221. }
  1222. }
  1223. function openGlossary(){
  1224. }
  1225. function fnSetMenus(){
  1226. var oNode=event.srcElement;
  1227. var oMenu=oNode.createMenu("SPAN","G_RID");
  1228. var oSubItem1=oNode.createMenuItem("Glossary",fnStub,oMenu,true);
  1229. document.body.createMenuItem("Open External Glossary",openGlossary,oSubItem1.subMenu);
  1230. document.body.createMenuItem("Disable Automatic Glossary",disableGlossary,oSubItem1.subMenu);
  1231. for(var i=0;i<aTerms.length;i++){
  1232. var oItem=document.body.createMenuItem(aTerms[i].innerText,navigateTerm,oMenu);
  1233. oItem.termID=i;
  1234. }
  1235. }
  1236. // This is a bogus stub. It should be sniffed out rather than added in.
  1237. function fnStub(){
  1238. }
  1239. function fnAttachMenus(aTips){
  1240. // This walk is only necessary for the context menu.
  1241. var aTips=document.body.all.tags("SPAN");
  1242. for(var i=0;i<aTips.length;i++){
  1243. var oNode=aTips[i];
  1244. if(oNode.getAttribute("G_RID")){
  1245. var sTerm=oNode.getAttribute("G_RID");
  1246. if(typeof(g_glossary[sTerm])=="string"){
  1247. // Removed client-side scripting to add events. This entire process should be singled out for IE 5 and later .. and, its only for the context menu.
  1248. aTerms[aTerms.length]=oNode;
  1249. }
  1250. }
  1251. }
  1252. if(oBD.majorVer>=5){
  1253. document.body.addBehavior(gsContextMenuPath);
  1254. document.body.onbehaviorready="fnSetMenus()";
  1255. document.body.oncontextopen="clearDef()";
  1256. }
  1257. }
  1258. // Called by showDef. The showDef function sniffs for initialization.
  1259. function openDialog(oNode,x,y){
  1260. var bStatus=oDialog.dlg_status; // BUGBUG: This code assumes that oDialog has been initialized
  1261. if(bStatus==false){
  1262. oDialog.dlg_status=true;
  1263. oDialog.style.display="block";
  1264. }
  1265. else{
  1266. if(typeof(oTimeout)=="number"){
  1267. window.clearTimeout(oTimeout);
  1268. }
  1269. }
  1270. var sTerm=oNode.getAttribute("G_RID");
  1271. var oDef=oNode.children(0);
  1272. var sDef=oDef.text;
  1273. sDef=sDef.substr(4,sDef.length-7); //Strips the html comment markers from the definition.
  1274. oDialog.innerHTML=sDef
  1275. //oDialog.innerHTML=g_glossary[sTerm];
  1276. var iScrollLeft=document.body.scrollLeft;
  1277. var iScrollTop=document.body.scrollTop;
  1278. var iOffsetLeft=getAbsoluteLeft(oNode)// - iScrollLeft;
  1279. var iOffsetWidth=oNode.offsetWidth;
  1280. var oParent=oNode.parentElement;
  1281. var iOffsetParentLeft=getAbsoluteLeft(oParent);
  1282. var iOffsetTop=getAbsoluteTop(oNode); //- iScrollTop;
  1283. var iOffsetDialogWidth=oDialog.offsetWidth;
  1284. if((iOffsetLeft + iOffsetWidth) > (iOffsetParentLeft + oParent.offsetWidth)){
  1285. iOffsetLeft=iOffsetParentLeft;
  1286. if(iOffsetLeft - iOffsetDialogWidth>0){
  1287. iOffsetTop+=oNode.offsetHeight;
  1288. }
  1289. }
  1290. var iLeft=0;
  1291. var iTop=0;
  1292. if((iOffsetLeft + iOffsetWidth - iScrollLeft + iOffsetDialogWidth) < document.body.offsetWidth ){
  1293. iLeft=iOffsetLeft + iOffsetWidth;
  1294. }
  1295. else{
  1296. if(iOffsetLeft - iOffsetDialogWidth>0){
  1297. iLeft=iOffsetLeft - iOffsetDialogWidth;
  1298. }
  1299. else{
  1300. iLeft=iOffsetParentLeft;
  1301. }
  1302. }
  1303. if(iOffsetTop - iScrollTop<oDialog.offsetHeight){
  1304. iTop=iOffsetTop + oNode.offsetHeight;
  1305. }
  1306. else{
  1307. iTop=iOffsetTop - oDialog.offsetHeight;
  1308. }
  1309. oDialog.style.top=iTop;
  1310. oDialog.style.left=iLeft;
  1311. oTimeout=window.setTimeout("hideDef()",iTimeout*1000);
  1312. }
  1313. function getAbsoluteTop(oNode){
  1314. var oCurrentNode=oNode;
  1315. var iTop=0;
  1316. while(oCurrentNode.tagName!="BODY"){
  1317. iTop+=oCurrentNode.offsetTop;
  1318. oCurrentNode=oCurrentNode.offsetParent;
  1319. }
  1320. return iTop;
  1321. }
  1322. function getAbsoluteLeft(oNode){
  1323. var oCurrentNode=oNode;
  1324. var iLeft=0;
  1325. while(oCurrentNode.tagName!="BODY"){
  1326. iLeft+=oCurrentNode.offsetLeft;
  1327. oCurrentNode=oCurrentNode.offsetParent;
  1328. }
  1329. return iLeft;
  1330. }
  1331. function fnCreateDialog(iWidth,iHeight){
  1332. document.body.insertAdjacentHTML("BeforeEnd","<DIV></DIV>");
  1333. oNewDialog=document.body.children(document.body.children.length-1);
  1334. oNewDialog.className="clsTooltip";
  1335. oNewDialog.style.width=iWidth;
  1336. oNewDialog.dlg_status=false;
  1337. return oNewDialog;
  1338. }
  1339. // AlanSm: end custom code
  1340. // DaemondC: Begin custom code
  1341. function sendfeedback(subject, id,alias){
  1342. var rExp = /\"/gi;
  1343. var url = location.href;
  1344. // Need to replace the double quotes with single quotes for the mailto to work.
  1345. var rExpSingleQuotes = /\'\'"/gi;
  1346. var title = document.all.tags("TITLE")[0].innerText.replace(rExp, "''");
  1347. location.href = "mailto:" + alias + "?subject=" + subject + title + "&body=Topic%20ID:%20" + id + "%0d%0aURL:%20" + url + "%0d%0a%0d%0aComments:%20";
  1348. }
  1349. // DaemondC: end custom code