PageRenderTime 73ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/src/Documentation/Help/Scripts/script_manifold.js

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