PageRenderTime 42ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/Documentation/Help/scripts/script_prototype.js

#
JavaScript | 189 lines | 144 code | 45 blank | 0 comment | 68 complexity | 551591183acdadd896b9c72b1c42a301 MD5 | raw file
Possible License(s): MIT
  1. window.onload = LoadPage;
  2. var sd;
  3. var lfc;
  4. var store;
  5. var tf;
  6. var mf;
  7. var lc;
  8. var lang = 'CSharp';
  9. function ListController() {
  10. this.tabCollections = new Array();
  11. this.listCollections = new Array();
  12. this.tabCollectionIds = new Array();
  13. this.listCollectionIds = new Array();
  14. }
  15. ListController.prototype.registerTabbedArea = function(tabCollection, listCollection, tabCollectionId, listCollectionId, filter) {
  16. this.tabCollections.push(tabCollection);
  17. this.listCollections.push(listCollection);
  18. this.tabCollectionIds.push(tabCollectionId);
  19. this.listCollectionIds.push(listCollectionId);
  20. }
  21. function LoadPage() {
  22. store = new CookieDataStore('docs');
  23. registerEventHandler(window, 'load',
  24. function() { var ss = new SplitScreen('control','main'); selectLanguage(store.get('lang')); });
  25. sd = getStyleDictionary();
  26. lfc = new LanguageFilterController();
  27. lc = new ListController();
  28. tf = new TypeFilter();
  29. mf = new MemberFilter();
  30. setUpLanguage();
  31. setUpSyntax();
  32. setUpSnippets();
  33. setUpType();
  34. setUpAllMembers();
  35. }
  36. function setUpLanguage() {
  37. var langFilter = document.getElementById('languageFilter');
  38. if (langFilter == null) return;
  39. var options = langFilter.getElementsByTagName('option');
  40. if (options == null) return;
  41. var value = options[0].getAttribute('value');
  42. var names = value.split(' ');
  43. lang = names[0];
  44. }
  45. function setUpSnippets() {
  46. var divs = document.getElementsByTagName("DIV");
  47. for (var i = 0; i < divs.length; i++) {
  48. var temp = i;
  49. var name = divs[i].getAttribute("name");
  50. if (name == null || name != "snippetGroup") continue;
  51. processSection(divs[i], 'x-lang', lang, true, true, lfc);
  52. i= temp + 1;
  53. }
  54. }
  55. function setUpSyntax() {
  56. var syntax = document.getElementById('syntaxSection');
  57. if (syntax == null) return;
  58. processSection(syntax, 'x-lang', lang, true, true, lfc);
  59. var usyntax = document.getElementById('usyntaxSection');
  60. if (usyntax == null) return;
  61. processSection(usyntax, 'x-lang', lang, true, true, lfc);
  62. }
  63. function setUpType() {
  64. var typeSection = document.getElementById('typeSection');
  65. if (typeSection == null) return;
  66. processSection(typeSection, 'value', 'all', true, false, lc);
  67. }
  68. function setUpAllMembers() {
  69. var allMembersSection = document.getElementById('allMembersSection');
  70. if (allMembersSection == null) return;
  71. processSection(allMembersSection, 'value', 'all', true, false, lc);
  72. }
  73. function processSection(section, attribute, value, toggleClassValue, toggleStyleValue, registerObject) {
  74. var nodes = section.childNodes;
  75. var tabs;
  76. var blocks;
  77. var tabId;
  78. var blockId;
  79. if(nodes.length != 2) return;
  80. if(nodes[0].tagName == 'TABLE') {
  81. var rows = nodes[0].getElementsByTagName('tr');
  82. if (rows.length == 0) return;
  83. tabId = rows[0].getAttribute('id');
  84. if (tabId == null) return;
  85. tabs = new ElementCollection(tabId);
  86. }
  87. if(nodes[1].tagName == 'DIV') {
  88. blockId = nodes[1].getAttribute('id');
  89. if (blockId == null) return;
  90. blocks = new ElementCollection(blockId);
  91. }
  92. else if (nodes[1].tagName == 'TABLE') {
  93. blockId = nodes[1].getAttribute('id');
  94. if (blockId == null) return;
  95. blocks = new ElementCollection(blockId);
  96. }
  97. if (registerObject != null) registerObject.registerTabbedArea(tabs, blocks, tabId, blockId);
  98. if (toggleClassValue) tabs.toggleClass(attribute,value,'activeTab','tab');
  99. if (toggleStyleValue) blocks.toggleStyle(attribute,value,'display','block','none');
  100. }
  101. function toggleClass(id, attributeName, attributeValue, trueClass, falseClass) {
  102. for(var i = 0; i < lfc.tabCollections.length; i++) {
  103. var tabs = lfc.tabCollections[i];
  104. if (lfc.tabCollectionIds[i] == id) {
  105. tabs.toggleClass(attributeName, attributeValue, trueClass, falseClass);
  106. }
  107. }
  108. for(var j = 0; j < lc.tabCollections.length; j++) {
  109. var listTabs = lc.tabCollections[j];
  110. if (lc.tabCollectionIds[j] == id) {
  111. listTabs.toggleClass(attributeName, attributeValue, trueClass, falseClass);
  112. }
  113. }
  114. }
  115. function toggleStyle(id, attributeName, attributeValue, styleName, trueStyleValue, falseStyleValue) {
  116. for (var i = 0; i < lfc.blockCollections.length; i++) {
  117. var blocks = lfc.blockCollections[i];
  118. if (lfc.blockCollectionIds[i] == id) {
  119. blocks.toggleStyle(attributeName, attributeValue, styleName, trueStyleValue, falseStyleValue);
  120. }
  121. }
  122. }
  123. function processList(id, methodName, typeName) {
  124. for (var i = 0; i < lc.listCollections.length; i++) {
  125. var list = lc.listCollections[i];
  126. if (lc.listCollectionIds[i] == id) {
  127. if (typeName == 'type') list.process(getInstanceDelegate(tf,methodName));
  128. else if (typeName == 'member') list.process(getInstanceDelegate(mf, methodName));
  129. }
  130. }
  131. }
  132. function processSubgroup(subgroup, typeName) {
  133. if (typeName == 'type' && tf != null) tf.subgroup = subgroup;
  134. else if (typeName == 'member' && mf != null) mf.subgroup = subgroup;
  135. }
  136. function toggleCheckState(visibility, value) {
  137. if (mf == null) return;
  138. mf[visibility] = value;
  139. }
  140. function switchLanguage(names, value) {
  141. if (lfc != null) lfc.switchLanguage(names[0]);
  142. store.set('lang',value);
  143. store.save();
  144. }