source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/BMX41000/IHS BMX Framework/IndianHealthService.BMXNet.Doc/Help/Scripts/script_manifold.js@ 1548

Last change on this file since 1548 was 1146, checked in by Sam Habiel, 13 years ago

Initial Import of BMX4

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