home *** CD-ROM | disk | FTP | other *** search
/ business-86-101-185-173.business.broadband.hu / business-86-101-185-173.business.broadband.hu.zip / business-86-101-185-173.business.broadband.hu / trans / sqlncli2005_x64.msi / sqlncli.chm.91A5E41F_8A38_40FB_BC6E_28CA47D512BD / local / script_main.js < prev    next >
Text File  |  2005-08-01  |  52KB  |  2,081 lines

  1.  
  2.  
  3. window.onload=LoadPage;
  4. window.onunload=Window_Unload;
  5. window.onresize=ResizeWindow;
  6. window.onbeforeprint = set_to_print;
  7. window.onafterprint = reset_form;
  8.  
  9. var vbDeclaration;
  10. var csLang;
  11. var cLang;
  12. var jsharpLang;
  13. var jsLang;
  14.  
  15. var scrollPos = 0;
  16.  
  17. var inheritedMembers;
  18. var protectedMembers;
  19. var netcfMembersOnly;
  20.  
  21. /*************************************************************
  22. // Begin WSS Specific Change.
  23. *************************************************************/
  24. var currentMenu = null;
  25. var blockHideMe = false;
  26. /*************************************************************
  27. // End WSS Specific Change.
  28. *************************************************************/
  29.  
  30.  
  31. // Initialize array of collapsed section image IDs
  32.  
  33. var collapsedSections = new Array();
  34. var collapsedSectionsInitialized = false;
  35.  
  36. function InitCollapsedSections()
  37. {
  38.     var i = 0;
  39.     var imageId = Load("imageValue" + i);
  40.         
  41.     while (imageId != null)
  42.     {
  43.         collapsedSections[imageId] = "not expanded";
  44.         i++;
  45.         imageId = Load("imageValue" + i);
  46.     }
  47. }
  48.  
  49. var noReentry = false;
  50.  
  51. function OnLoadImage()
  52. {
  53.     if (noReentry) return;
  54.     if (!collapsedSectionsInitialized) { InitCollapsedSections(); collapsedSectionsInitialized = true; }
  55.     
  56.     elem = event.srcElement;
  57.         
  58.     if (ShouldExpand(elem))
  59.     {
  60.         noReentry = true;
  61.         
  62.         try
  63.         {
  64.             elem.src = collapseImage.src;
  65.             ExpandSection(elem);
  66.               RemoveCollapsedItem(elem.id);
  67.             collapsedSections[elem.id] = "expanded";
  68.         }
  69.         catch (e)
  70.         {
  71.         }
  72.         
  73.         noReentry = false;
  74.     }
  75. }
  76.  
  77. function ShouldExpand(elem)
  78. {
  79.     return (collapsedSections[elem.id] == null) || (Load("IsFirstPage") == null);
  80. }
  81.  
  82.  
  83.  
  84. /*  
  85. **********
  86. **********   Begin
  87. **********
  88. */
  89.  
  90. function LoadPage()
  91. {
  92.     if(IsEvilUrl())
  93.     {
  94.         ReloadEvilUrlAsGoodUrl();
  95.         return; // in just a moment, page will reload.
  96.     }
  97.     // show correct language
  98.     LoadLanguages();
  99.     LoadMembersOptions();
  100.     
  101.     Set_up_checkboxes();
  102.  
  103.     DisplayLanguages();
  104.     
  105.     if(inheritedMembers=="off")
  106.         DisplayInheritedMembers();
  107.     if(protectedMembers=="off")
  108.         DisplayProtectedMembers();
  109.     if(netcfMembersOnly=="on")
  110.         DisplayNETCFMembers();
  111.         
  112.     ChangeMembersOptionsFilterLabel();
  113.     
  114.     LoadSections();
  115.     ResizeWindow();
  116.  
  117.     // vs70.js did this to allow up/down arrow scrolling, I think
  118.     try { mainSection.setActive(); } catch(e) { }
  119.  
  120.     //set the scroll position
  121.     try{mainSection.scrollTop = scrollPos;}
  122.     catch(e){}
  123.  
  124.     /*************************************************************
  125.     // Begin WSS Specific Change.
  126.     *************************************************************/
  127.     Hide_LangFilter();
  128.     document.body.onclick = bodyOnClick;
  129.     //initReftips();
  130.     
  131.     initializeMenu("InfoMenu", "InfoMenuActuator");
  132.     
  133.     //START: Feedback Integration
  134.  
  135.     try {
  136.       if(newFeedback)
  137.       {
  138.         HeadFeedBack(headfb);
  139.         var first=true;
  140.         document.feedback = new FeedBack(L_alias, L_product, L_deliverable, L_productversion, L_docversion, L_FeedBackDivID);
  141.         document.feedback.StartFeedBack(fb,first);
  142.       }
  143.       else
  144.       {
  145.         var first=true;
  146.         document.FdBack = new FdBack(L_alias, L_product, L_deliverable, L_productversion, L_docversion, L_FeedBackDivID);
  147.         document.FdBack.StartFdBack(fb);
  148.       }
  149.     }
  150.     catch(e) {}
  151.  
  152.     //END: Feedback Integration
  153.     //START: Search fix
  154.     try {
  155.       var spanElements = document.all.tags("span");
  156.       for(i = 0; i < spanElements.length; ++i)
  157.       {
  158.         if(spanElements[i].id != null)
  159.         {
  160.             if(spanElements[i].id == "sf_LangFilter")
  161.           spanElements[i].innerHTML = L_sf_LangFilter;
  162.             if(spanElements[i].id == "sf_All")
  163.           spanElements[i].innerHTML = L_sf_All;
  164.             if(spanElements[i].id == "sf_Multiple")
  165.           spanElements[i].innerHTML = L_sf_Multiple;
  166.             if(spanElements[i].id == "sf_VB")
  167.           spanElements[i].innerHTML = L_sf_VB;
  168.             if(spanElements[i].id == "sf_Declaration")
  169.           spanElements[i].innerHTML = L_sf_Declaration;
  170.             if(spanElements[i].id == "sf_Usage")
  171.           spanElements[i].innerHTML = L_sf_Usage;
  172.             if(spanElements[i].id == "sf_CSharp")
  173.           spanElements[i].innerHTML =L_sf_CSharp;
  174.             if(spanElements[i].id == "sf_CPlus")
  175.           spanElements[i].innerHTML = L_sf_CPlus;
  176.             if(spanElements[i].id == "sf_JSharp")
  177.           spanElements[i].innerHTML = L_sf_JSharp;
  178.             if(spanElements[i].id == "sf_JScript")
  179.           spanElements[i].innerHTML = L_sf_JScript;
  180.             if(spanElements[i].id == "sf_Xml")
  181.           spanElements[i].innerHTML = L_sf_Xml;
  182.             if(spanElements[i].id == "sf_Html")
  183.           spanElements[i].innerHTML = L_sf_Html;
  184.             if(spanElements[i].id == "sf_CollAl")
  185.           spanElements[i].innerHTML = L_sf_CollAl;
  186.             if(spanElements[i].id == "sf_ExpAll")
  187.           spanElements[i].innerHTML = L_sf_ExpAll;
  188.             if(spanElements[i].id == "sf_Roles")
  189.           spanElements[i].innerHTML = L_sf_Roles;
  190.             if(spanElements[i].id == "sf_Info")
  191.           spanElements[i].innerHTML = L_sf_Info;
  192.             if(spanElements[i].id == "sf_MemAll")
  193.           spanElements[i].innerHTML = L_sf_MemAll;
  194.             if(spanElements[i].id == "sf_MemFilt")
  195.           spanElements[i].innerHTML = L_sf_MemFilt;
  196.             if(spanElements[i].id == "sf_MemInh")
  197.           spanElements[i].innerHTML = L_sf_MemInh;
  198.             if(spanElements[i].id == "sf_MemPro")
  199.           spanElements[i].innerHTML = L_sf_MemPro;
  200.             if(spanElements[i].id == "sf_MemCom")
  201.           spanElements[i].innerHTML = L_sf_MemCom;
  202.     } //if
  203.        } //for
  204.     } //try
  205.     catch(e)
  206.     {}
  207.     //END: Search fix
  208.     /*************************************************************
  209.     // End WSS Specific Change.
  210.     *************************************************************/
  211. }
  212.  
  213. function Window_Unload()
  214. {
  215.     if(IsGoodUrl())
  216.     {
  217.         // save persistable data (except when unloading from a "bad url")
  218.     SaveLanguages();
  219.     SaveMembersOptions();
  220.     SaveSections();
  221.     }
  222. }
  223.  
  224. function ResizeWindow()
  225. {
  226.     if (document.body.clientWidth==0) return;
  227.     var header = document.all.item("header");
  228.     var mainSection = document.all.item("mainSection");
  229.     if (mainSection == null) return;
  230.     
  231.     
  232.     document.body.scroll = "no"
  233.     mainSection.style.overflow= "auto";
  234.     header.style.width= document.body.offsetWidth - 2;
  235.     //mainSection.style.paddingRight = "20px"; // Width issue code
  236.     mainSection.style.width= document.body.offsetWidth - 4;
  237.     mainSection.style.top=0;  
  238.     if (document.body.offsetHeight > header.offsetHeight + 10)
  239.         mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 10);
  240.     else
  241.         mainSection.style.height=0;
  242.     
  243.     try
  244.     {
  245.         mainSection.setActive();
  246.     }
  247.     catch(e)
  248.     {
  249.     }
  250. }
  251.  
  252. function Load(key)
  253. {
  254. try {
  255.     userDataCache.load("docSettings");
  256.     var value = userDataCache.getAttribute(key);
  257.     return value;
  258. }
  259. catch(e)
  260. {
  261. }
  262. }
  263.  
  264. function Save(key, value)
  265. {
  266. try {
  267.     userDataCache.setAttribute(key, value);
  268.     userDataCache.save("docSettings");
  269. }
  270. catch (e)
  271. {
  272. }
  273. }
  274.  
  275. function RemoveAttribute(key)
  276. {
  277. try {
  278.     userDataCache.removeAttribute(key);
  279.     userDataCache.save("docSettings");
  280. }
  281. catch(e)
  282. {
  283. }
  284. }
  285.  
  286. function set_to_print()
  287. {
  288.     //breaks out of divs to print
  289.     var i;
  290.  
  291.     if (window.text)document.all.text.style.height = "auto";
  292.             
  293.     for (i=0; i < document.all.length; i++)
  294.     {
  295.         if (document.all[i].tagName == "body")
  296.         {
  297.             document.all[i].scroll = "yes";
  298.         }
  299.         if (document.all[i].id == "header")
  300.         {
  301.             document.all[i].style.margin = "0px 0px 0px 0px";
  302.             document.all[i].style.width = "100%";
  303.         }
  304.         if (document.all[i].id == "mainSection")
  305.         {
  306.             document.all[i].style.overflow = "visible";
  307.             document.all[i].style.top = "5px";
  308.             document.all[i].style.width = "100%";
  309.             document.all[i].style.padding = "0px 10px 0px 30px";
  310.         }
  311.     }
  312. }
  313.  
  314. function reset_form()
  315. {
  316.     //returns to the div nonscrolling region after print
  317.      document.location.reload();
  318. }
  319.  
  320. function IsEvilUrl()
  321. {
  322.     var url = "" + document.location + ".";
  323.     var r = url.indexOf("mk:@MSITStore") != -1;
  324.     return r;
  325. }
  326.  
  327. function IsGoodUrl()
  328. {
  329.     return !IsEvilUrl();
  330. }
  331.  
  332. function ReloadEvilUrlAsGoodUrl()
  333. {
  334.     var url = "" + document.location + ".";
  335.     var i = url.indexOf("mk:@MSITStore");
  336.     if(i != -1)
  337.     {
  338.         url = "ms-its:" + url.substring(14, url.length - 1);
  339.         document.location.replace(url);
  340.     }
  341. }
  342. function Set_up_checkboxes()
  343. {
  344.     var checkbox;
  345.     
  346.     checkbox = document.getElementById("vbDeclarationCheckbox");
  347.     if(checkbox != null)
  348.     {
  349.         if(vbDeclaration == "on")
  350.             checkbox.checked = true;
  351.         else
  352.             checkbox.checked = false;
  353.     }
  354.     
  355.     checkbox = document.getElementById("csCheckbox");
  356.     if(checkbox != null)
  357.     {
  358.         if(csLang == "on")
  359.             checkbox.checked = true;
  360.         else
  361.             checkbox.checked = false;
  362.     }
  363.         
  364.     checkbox = document.getElementById("cCheckbox");
  365.     if(checkbox != null)
  366.     {
  367.         if(cLang == "on")
  368.             checkbox.checked = true;
  369.         else
  370.             checkbox.checked = false;
  371.     }
  372.     
  373.     checkbox = document.getElementById("jsharpCheckbox");
  374.     if(checkbox != null)
  375.     {
  376.         if(jsharpLang == "on")
  377.             checkbox.checked = true;
  378.         else
  379.             checkbox.checked = false;
  380.     }
  381.         
  382.     checkbox = document.getElementById("jsCheckbox");
  383.     if(checkbox != null)
  384.     {
  385.         if(jsLang == "on")
  386.             checkbox.checked = true;
  387.         else
  388.             checkbox.checked = false;
  389.     }
  390.     
  391.     checkbox = document.getElementById("inheritedCheckbox");
  392.     if(checkbox != null)
  393.     {
  394.         if(inheritedMembers == "on")
  395.             checkbox.checked = true;
  396.         else
  397.             checkbox.checked = false;
  398.     }
  399.     
  400.     checkbox = document.getElementById("protectedCheckbox");
  401.     if(checkbox != null)
  402.     {
  403.         if(protectedMembers == "on")
  404.             checkbox.checked = true;
  405.         else
  406.             checkbox.checked = false;
  407.     }
  408.     
  409.     checkbox = document.getElementById("netcfCheckbox");
  410.     if(checkbox != null)
  411.     {
  412.         if(netcfMembersOnly == "on")
  413.             checkbox.checked = true;
  414.         else
  415.             checkbox.checked = false;
  416.     }
  417. }
  418.  
  419. /*  
  420. **********
  421. **********   End
  422. **********
  423. */
  424.  
  425.  
  426. /*  
  427. **********
  428. **********   Begin Language Filtering
  429. **********
  430. */
  431.  
  432. function SetLanguage(key)
  433. {
  434.     var i = 0;
  435.     if(vbDeclaration == "on")
  436.         i++;
  437.     if(csLang == "on")
  438.         i++;
  439.     if(cLang == "on")
  440.         i++;
  441.     if(jsharpLang == "on")
  442.         i++;
  443.     if(jsLang == "on")
  444.         i++;
  445.     
  446.     if(key.id == "vbDeclarationCheckbox")
  447.     {
  448.         if(vbDeclaration == "on")
  449.         {
  450.             if(i == 1)
  451.             {
  452.                 key.checked = true;
  453.                 return;
  454.             }
  455.                 
  456.             vbDeclaration = "off";
  457.         }
  458.         else
  459.             vbDeclaration = "on";
  460.     }
  461.     if(key.id == "csCheckbox")
  462.     {
  463.         if(csLang == "on")
  464.         {
  465.             if(i == 1)
  466.             {
  467.                 key.checked = true;
  468.                 return;
  469.             }
  470.             
  471.             csLang = "off";
  472.         }
  473.         else
  474.             csLang = "on";
  475.     }
  476.     if(key.id == "cCheckbox")
  477.     {
  478.         if(cLang == "on")
  479.         {
  480.             if(i == 1)
  481.             {
  482.                 key.checked = true;
  483.                 return;
  484.             }
  485.                 
  486.             cLang = "off";
  487.         }
  488.         else
  489.             cLang = "on";
  490.     }
  491.     if(key.id == "jsharpCheckbox")
  492.     {
  493.         if(jsharpLang == "on")
  494.         {
  495.             if(i == 1)
  496.             {
  497.                 key.checked = true;
  498.                 return;
  499.             }
  500.                 
  501.             jsharpLang = "off";
  502.         }
  503.         else
  504.             jsharpLang = "on";
  505.     }
  506.     if(key.id == "jsCheckbox")
  507.     {
  508.         if(jsLang == "on")
  509.         {
  510.             if(i == 1)
  511.             {
  512.                 key.checked = true;
  513.                 return;
  514.             }
  515.                 
  516.             jsLang = "off";
  517.         }
  518.         else
  519.             jsLang = "on";
  520.     }
  521.     
  522.     DisplayLanguages();
  523. }
  524.  
  525. function DisplayLanguages()
  526. {
  527.     var spanElements = document.all.tags("span");
  528.     
  529.     var x = 0;
  530.     if(vbDeclaration == "on")
  531.         x++;
  532.     if(csLang == "on")
  533.         x++;
  534.     if(cLang == "on")
  535.         x++;
  536.     if(jsharpLang == "on")
  537.         x++;
  538.     if(jsLang == "on")
  539.         x++;
  540.     
  541.     var i;
  542.     for(i = 0; i < spanElements.length; ++i)
  543.     {
  544.         if(spanElements[i].codeLanguage != null)
  545.         {
  546.             if(spanElements[i].codeLanguage == "VisualBasicDeclaration")
  547.             {
  548.                 if(vbDeclaration == "on")
  549.                     spanElements[i].style.display = "";
  550.                 else
  551.                     spanElements[i].style.display = "none";
  552.             }
  553.             if(spanElements[i].codeLanguage == "CSharp")
  554.             {
  555.                 if(csLang == "on")
  556.                     spanElements[i].style.display = "";
  557.                 else
  558.                     spanElements[i].style.display = "none";
  559.             }
  560.             if(spanElements[i].codeLanguage == "ManagedCPlusPlus")
  561.             {
  562.                 if(cLang == "on")
  563.                     spanElements[i].style.display = "";
  564.                 else
  565.                     spanElements[i].style.display = "none";
  566.             }
  567.             if(spanElements[i].codeLanguage == "JSharp")
  568.             {
  569.                 if(jsharpLang == "on")
  570.                     spanElements[i].style.display = "";
  571.                 else
  572.                     spanElements[i].style.display = "none";
  573.             }
  574.             if(spanElements[i].codeLanguage == "JScript")
  575.             {
  576.                 if(jsLang == "on")
  577.                     spanElements[i].style.display = "";
  578.                 else
  579.                     spanElements[i].style.display = "none";
  580.             }
  581.             
  582.         }
  583.     }
  584.     ChangeLanguageFilterLabel();
  585. }
  586.  
  587. function ChangeLanguageFilterLabel()
  588. {   
  589.     var i = 0;
  590.     if(vbDeclaration == "on")
  591.         i++;
  592.     if(csLang == "on")
  593.         i++;
  594.     if(cLang == "on")
  595.         i++;
  596.     if(jsharpLang == "on")
  597.         i++;
  598.     if(jsLang == "on")
  599.         i++;
  600.         
  601.     var labelElement;
  602.     
  603.     labelElement = document.getElementById("showAllLabel");
  604.     
  605.     if(labelElement == null)
  606.         return;
  607.         
  608.     labelElement.style.display = "none";
  609.     
  610.     labelElement = document.getElementById("multipleLabel");
  611.     labelElement.style.display = "none";
  612.     
  613.     labelElement = document.getElementById("vbLabel");
  614.     labelElement.style.display = "none";
  615.     
  616.     labelElement = document.getElementById("csLabel");
  617.     labelElement.style.display = "none";
  618.     
  619.     labelElement = document.getElementById("cLabel");
  620.     labelElement.style.display = "none";
  621.     
  622.     labelElement = document.getElementById("jsharpLabel");
  623.     labelElement.style.display = "none";
  624.     
  625.     labelElement = document.getElementById("jsLabel");
  626.     labelElement.style.display = "none";
  627.     
  628.     if(i == 5)
  629.     {
  630.         labelElement = document.getElementById("showAllLabel");
  631.         labelElement.style.display = "inline";
  632.     }
  633.     else if ((i > 1) && (i < 5))
  634.     {
  635.             labelElement = document.getElementById("multipleLabel");
  636.             labelElement.style.display = "inline";
  637.     }
  638.     else if (i == 1)
  639.     {
  640.         if(vbDeclaration == "on")
  641.         {
  642.             labelElement = document.getElementById("vbLabel");
  643.             labelElement.style.display = "inline";
  644.         }
  645.         if(csLang == "on")
  646.         {
  647.             labelElement = document.getElementById("csLabel");
  648.             labelElement.style.display = "inline";
  649.         }
  650.         if(cLang == "on")
  651.         {
  652.             labelElement = document.getElementById("cLabel");
  653.             labelElement.style.display = "inline";
  654.         }
  655.         if(jsharpLang == "on")
  656.         {
  657.             labelElement = document.getElementById("jsharpLabel");
  658.             labelElement.style.display = "inline";
  659.         }
  660.         if(jsLang == "on")
  661.         {
  662.             labelElement = document.getElementById("jsLabel");
  663.             labelElement.style.display = "inline";
  664.         }
  665.     }
  666. }
  667.  
  668. function LoadLanguages()
  669. {
  670.     var value;
  671.     value = Load("vbDeclaration");
  672.     if(value == null)
  673.         vbDeclaration = "on";
  674.     else
  675.         vbDeclaration = value;
  676.         
  677.     value = Load("csLang");
  678.     if(value == null)
  679.         csLang = "on";
  680.     else
  681.         csLang = value;
  682.         
  683.     value = Load("cLang");
  684.     if(value == null)
  685.         cLang = "on";
  686.     else
  687.         cLang = value;
  688.     
  689.     value = Load("jsharpLang");
  690.     if(value == null)
  691.         jsharpLang = "on";
  692.     else
  693.         jsharpLang = value;
  694.         
  695.     value = Load("jsLang");
  696.     if(value == null)
  697.         jsLang = "on";
  698.     else
  699.         jsLang = value;
  700. }
  701.  
  702. function SaveLanguages()
  703. {
  704.     Save("vbDeclaration", vbDeclaration);
  705.     Save("csLang", csLang);
  706.     Save("cLang", cLang);
  707.     Save("jsharpLang", jsharpLang);
  708.     Save("jsLang", jsLang);
  709. }
  710.  
  711. /*  
  712. **********
  713. **********   End Language Filtering
  714. **********
  715. */
  716.  
  717.  
  718. /*  
  719. **********
  720. **********   Begin Members Options Filtering
  721. **********
  722. */
  723.  
  724. function SetMembersOptions(key)
  725. {
  726.     if(key.id == "inheritedCheckbox")
  727.     {
  728.         if(key.checked == true)
  729.             inheritedMembers = "on";
  730.         else
  731.             inheritedMembers = "off";
  732.         
  733.         DisplayInheritedMembers();
  734.     }
  735.     if(key.id == "protectedCheckbox")
  736.     {
  737.         if(key.checked == true)
  738.             protectedMembers = "on";
  739.         else
  740.             protectedMembers = "off";
  741.         
  742.         DisplayProtectedMembers();
  743.     }
  744.     if(key.id == "netcfCheckbox")
  745.     {
  746.         if(key.checked == true)
  747.             netcfMembersOnly = "on";
  748.         else
  749.             netcfMembersOnly = "off";
  750.     
  751.         DisplayNETCFMembers();
  752.     }
  753.     
  754.     ChangeMembersOptionsFilterLabel();
  755. }
  756.  
  757. function DisplayInheritedMembers()
  758. {
  759.     var iMembers = document.all.tags("tr");
  760.     var i;
  761.     
  762.     if(inheritedMembers == "off")
  763.     {   
  764.         for(i = 0; i < iMembers.length; ++i)
  765.         {
  766.             if(iMembers[i].name == "inheritedMember")
  767.                 iMembers[i].style.display = "none";
  768.         }
  769.     }
  770.     else
  771.     {
  772.         for(i = 0; i < iMembers.length; ++i)
  773.         {
  774.             if(iMembers[i].name == "inheritedMember")
  775.             {
  776.                 if(netcfMembersOnly == "on")
  777.                 {
  778.                     if(iMembers[i].notSupportedOn == "netcf")
  779.                     {
  780.                         iMembers[i].style.display = "none";
  781.                     }
  782.                     else
  783.                     {
  784.                         iMembers[i].style.display = "";
  785.                     }
  786.                 }
  787.                 else
  788.                     iMembers[i].style.display = "";
  789.             }
  790.         }
  791.     }
  792. }
  793.  
  794. function DisplayProtectedMembers()
  795. {
  796.     var imgElements = document.getElementsByName("toggleSwitch");
  797.     var i;
  798.     
  799.     if(protectedMembers == "off")
  800.     {
  801.         for(i = 0; i < imgElements.length; ++i)
  802.         {
  803.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  804.             {
  805.                 if(ItemCollapsed(imgElements[i].id) == false)
  806.                 {
  807.                     ExpandCollapse(imgElements[i]);
  808.                 }
  809.             }
  810.         }
  811.     }
  812.     else
  813.     {
  814.         for(i = 0; i < imgElements.length; ++i)
  815.         {
  816.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  817.             {
  818.                 if(ItemCollapsed(imgElements[i].id) == true)
  819.                 {
  820.                     ExpandCollapse(imgElements[i]);
  821.                 }
  822.             }
  823.         }
  824.     }
  825.         
  826. }
  827.  
  828. function DisplayNETCFMembers()
  829. {
  830.     var netcfMembers = document.all.tags("tr");
  831.     var i;
  832.     
  833.     if(netcfMembersOnly == "off")
  834.     {   
  835.         for(i = 0; i < netcfMembers.length; ++i)
  836.         {
  837.             if(netcfMembers[i].notSupportedOn == "netcf")
  838.             {
  839.                 netcfMembers[i].style.display = "";
  840.             }
  841.         }
  842.         DisplayInheritedMembers();
  843.     }
  844.     else
  845.     {
  846.         for(i = 0; i < netcfMembers.length; ++i)
  847.         {
  848.             if(netcfMembers[i].notSupportedOn == "netcf")
  849.             {
  850.                 netcfMembers[i].style.display = "none";
  851.             }
  852.         }
  853.     }
  854. }
  855.  
  856. function ChangeMembersOptionsFilterLabel()
  857. {   
  858.  
  859.     var filtered = false;
  860.     
  861.     if((inheritedMembers=="off") || (protectedMembers=="off") || (netcfMembersOnly=="on"))
  862.         filtered = true;
  863.         
  864.     var labelElement;
  865.     
  866.     labelElement = document.getElementById("showAllMembersLabel");
  867.     
  868.     if(labelElement == null)
  869.         return;
  870.         
  871.     labelElement.style.display = "none";
  872.     
  873.     labelElement = document.getElementById("filteredMembersLabel");
  874.     labelElement.style.display = "none";
  875.     
  876.     if(filtered)
  877.     {
  878.         labelElement = document.getElementById("filteredMembersLabel");
  879.         labelElement.style.display = "inline";
  880.     }
  881.     else
  882.     {
  883.         labelElement = document.getElementById("showAllMembersLabel");
  884.         labelElement.style.display = "inline";
  885.     }
  886. }
  887.  
  888. function LoadMembersOptions()
  889. {
  890.     var value;
  891.     value = Load("inheritedMembers");
  892.     if(value == null)
  893.         inheritedMembers = "on";
  894.     else
  895.         inheritedMembers = value;
  896.         
  897.     value = Load("protectedMembers");
  898.     if(value == null)
  899.         protectedMembers = "on";
  900.     else
  901.         protectedMembers = value;
  902.         
  903.     value = Load("netcfMembersOnly");
  904.     if(value == null)
  905.         netcfMembersOnly = "off";
  906.     else
  907.         netcfMembersOnly = value;
  908. }
  909.  
  910. function SaveMembersOptions()
  911. {
  912.     Save("inheritedMembers", inheritedMembers);
  913.     Save("protectedMembers", protectedMembers);
  914.     Save("netcfMembersOnly", netcfMembersOnly);
  915. }
  916.  
  917. /*  
  918. **********
  919. **********   End Members Options Filtering
  920. **********
  921. */
  922.  
  923.  
  924. /*    
  925. **********
  926. **********   Begin Expand/Collapse
  927. **********
  928. */
  929.  
  930. var collapsedItems = new Array();
  931.  
  932. function ExpandCollapse(imageItem)
  933. {
  934.     noReentry = true; // Prevent entry to OnLoadImage
  935.     
  936.     if(ItemCollapsed(imageItem.id) == true)
  937.     {
  938.         imageItem.src = collapseImage.src;
  939.         ExpandSection(imageItem);
  940.         RemoveCollapsedItem(imageItem.id);
  941.         
  942.         if(imageItem.id.indexOf("Family", 0) == 0)
  943.         {
  944.             protectedMembers = "on";
  945.             Set_up_checkboxes();
  946.             ChangeMembersOptionsFilterLabel();
  947.         }
  948.     }
  949.     else
  950.     {
  951.         imageItem.src = expandImage.src;
  952.         CollapseSection(imageItem);
  953.         AddCollapsedItem(imageItem.id);
  954.     }
  955.     
  956.     SetCollapseAll();
  957.  
  958.     noReentry = false;
  959. }
  960.  
  961. function ExpandCollapseAll(imageItem)
  962. {
  963.     noReentry = true; // Prevent entry to OnLoadImage
  964.     
  965.     var imgElements = document.getElementsByName("toggleSwitch");
  966.     var i;
  967.     
  968.     if(ItemCollapsed(imageItem.id) == true)
  969.     {
  970.         imageItem.src = collapseAllImage.src;
  971.         RemoveCollapsedItem(imageItem.id);
  972.         for(i = 0; i < imgElements.length; ++i)
  973.         {
  974.             imgElements[i].src = collapseImage.src;
  975.             ExpandSection(imgElements[i]);
  976.             RemoveCollapsedItem(imgElements[i].id);
  977.             
  978.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  979.                 protectedMembers = "on";
  980.         }
  981.         SetToggleAllLabel(false);
  982.     }
  983.     else
  984.     {
  985.         imageItem.src = expandAllImage.src;
  986.         AddCollapsedItem(imageItem.id);
  987.         for(i = 0; i < imgElements.length; ++i)
  988.         {
  989.             imgElements[i].src = expandImage.src;
  990.             CollapseSection(imgElements[i]);
  991.             AddCollapsedItem(imgElements[i].id);
  992.         }
  993.         SetToggleAllLabel(true);
  994.     }
  995.     
  996.     noReentry = false;
  997. }
  998.  
  999. function ExpandCollapse_CheckKey(imageItem)
  1000. {
  1001.     if(window.event.keyCode == 13)
  1002.         ExpandCollapse(imageItem);
  1003. }
  1004.  
  1005. function ExpandCollapseAll_CheckKey(imageItem)
  1006. {
  1007.     if(window.event.keyCode == 13)
  1008.         ExpandCollapseAll(imageItem);
  1009. }
  1010.  
  1011. function ExpandSection(imageItem)
  1012. {
  1013.     imageItem.parentElement.parentElement.nextSibling.style.display    = "";
  1014. }
  1015.  
  1016. function CollapseSection(imageItem)
  1017. {
  1018.     imageItem.parentElement.parentElement.nextSibling.style.display    = "none";
  1019. }
  1020.  
  1021. function SetCollapseAll()
  1022. {
  1023.     var imageElement = document.getElementById("toggleAllImage");
  1024.     
  1025.     if(imageElement == null)
  1026.         return;
  1027.         
  1028.     var imgElements = document.getElementsByName("toggleSwitch");
  1029.     var allCollapsed = true;
  1030.     var i;
  1031.         
  1032.     for(i = 0; i < imgElements.length; ++i)
  1033.     {
  1034.         allCollapsed = allCollapsed && ItemCollapsed(imgElements[i].id)
  1035.     }
  1036.     
  1037.     if(allCollapsed)
  1038.     {
  1039.         imageElement.src = expandAllImage.src;
  1040.         AddCollapsedItem(imageElement.id);
  1041.     }
  1042.     else
  1043.     {
  1044.         imageElement.src = collapseAllImage.src;
  1045.         RemoveCollapsedItem(imageElement.id);
  1046.     }
  1047.     
  1048.     SetToggleAllLabel(allCollapsed);
  1049. }
  1050.  
  1051. function SetToggleAllLabel(allCollapsed)
  1052. {
  1053.     var labelElement;
  1054.     labelElement = document.getElementById("collapseAllLabel");
  1055.     
  1056.     if(labelElement == null)
  1057.         return;
  1058.         
  1059.     labelElement.style.display = "none";
  1060.     
  1061.     labelElement = document.getElementById("expandAllLabel");
  1062.     labelElement.style.display = "none";
  1063.     
  1064.     if(allCollapsed)
  1065.     {
  1066.         labelElement = document.getElementById("expandAllLabel");
  1067.         labelElement.style.display = "inline";
  1068.     }
  1069.     else
  1070.     {
  1071.         labelElement = document.getElementById("collapseAllLabel");
  1072.         labelElement.style.display = "inline";
  1073.     }
  1074. }
  1075.  
  1076. function ItemCollapsed(imageId)
  1077. {
  1078.     var i;
  1079.     
  1080.     for(i = 0; i < collapsedItems.length; ++i)
  1081.     {
  1082.         if(imageId == collapsedItems[i])
  1083.             return true;
  1084.     }
  1085.     
  1086.     return false;
  1087. }
  1088.  
  1089. function AddCollapsedItem(imageId)
  1090. {    
  1091.     if(ItemCollapsed(imageId) == false)
  1092.     collapsedItems[collapsedItems.length] = imageId;
  1093. }
  1094.  
  1095. function RemoveCollapsedItem(imageId)
  1096. {
  1097.     var i;
  1098.     
  1099.     for(i = 0; i < collapsedItems.length; ++i)
  1100.     {
  1101.         if(imageId == collapsedItems[i])
  1102.             collapsedItems.splice(i, 1);
  1103.     }
  1104. }
  1105.  
  1106. function SaveSections()
  1107. {
  1108.     var i;
  1109.     var x = 0;
  1110.     
  1111.     CleanUserDataStore();
  1112.     
  1113.     for(i = 0; i < collapsedItems.length; ++i)
  1114.     {
  1115.         if(ShouldSave(collapsedItems[i]) == true)
  1116.         {
  1117.             Save("imageValue" + x, collapsedItems[i]);
  1118.             x++;
  1119.         }
  1120.     }
  1121.     
  1122.     Save("IsFirstPage", false);
  1123. }
  1124.  
  1125. function LoadSections()
  1126. {
  1127.     var i = 0;
  1128.     var imageId = Load("imageValue" + i);
  1129.  
  1130.     while(imageId != null)
  1131.     {
  1132.         var imageItem = document.getElementById(imageId);
  1133.         //alert(imageItem.id);
  1134.         if(imageItem != null && collapsedSections[imageId] == "not expanded")
  1135.         {
  1136.             RemoveCollapsedItem(imageId);
  1137.             
  1138.             if(imageItem.id.indexOf("Family", 0) == 0)
  1139.             {
  1140.                 if(protectedMembers == "on")
  1141.                 {
  1142.                     ExpandCollapse(imageItem);
  1143.                 }
  1144.             }
  1145.             else
  1146.             {
  1147.                 ExpandCollapse(imageItem);
  1148.             }
  1149.         }
  1150.     
  1151.         i++;
  1152.         imageId = Load("imageValue" + i);
  1153.     }
  1154.     
  1155.     SetCollapseAll();
  1156. }
  1157.  
  1158. function CleanUserDataStore()
  1159. {
  1160.     var i = 0;
  1161.     var imageId = Load("imageValue" + i);
  1162.     
  1163.     while(imageId != null)
  1164.     {
  1165.         RemoveAttribute("imageValue" + i);
  1166.         i++;
  1167.         imageId = Load("imageValue" + i);
  1168.     }
  1169. }
  1170.  
  1171. function ShouldSave(imageId)
  1172. {
  1173.     var toggleName;
  1174.     
  1175.     if(imageId == "toggleAllImage")
  1176.         return false;
  1177.     
  1178.     toggleName = "procedureToggle";
  1179.     if(imageId.indexOf(toggleName, 0) == 0)
  1180.         return false;
  1181.         
  1182.     toggleName = "sectionToggle";
  1183.     if(imageId.indexOf(toggleName, 0) == 0)
  1184.         return false;
  1185.     
  1186.     return true;
  1187. }
  1188.  
  1189. function OpenSection(imageItem)
  1190. {
  1191.     if(ItemCollapsed(imageItem.id) == true)
  1192.         ExpandCollapse(imageItem);
  1193. }
  1194.  
  1195. /*    
  1196. **********
  1197. **********   End Expand/Collapse
  1198. **********
  1199. */
  1200.  
  1201.  
  1202. /*  
  1203. **********
  1204. **********   Begin Copy Code
  1205. **********
  1206. */
  1207.  
  1208. function CopyCode(key)
  1209. {
  1210.     var trElements = document.all.tags("tr");
  1211.     var i;
  1212.     for(i = 0; i < trElements.length; ++i)
  1213.     {
  1214.         if(key.parentElement.parentElement.parentElement == trElements[i].parentElement)
  1215.         {
  1216.             window.clipboardData.setData("Text", trElements[i].innerText);
  1217.         }
  1218.     }
  1219. }
  1220.  
  1221. function ChangeCopyCodeIcon(key)
  1222. {
  1223.     var i;
  1224.     var imageElements = document.getElementsByName("ccImage")
  1225.     for(i=0; i<imageElements.length; ++i)
  1226.     {
  1227.         if(imageElements[i].parentElement == key)
  1228.         {
  1229.             if(imageElements[i].src == copyImage.src)
  1230.                 imageElements[i].src = copyHoverImage.src;
  1231.             else
  1232.                 imageElements[i].src = copyImage.src;
  1233.         }
  1234.     }
  1235. }
  1236.  
  1237. function CopyCode_CheckKey(key)
  1238. {
  1239.     if(window.event.keyCode == 13)
  1240.         CopyCode(key);
  1241. }
  1242.  
  1243. /*  
  1244. **********
  1245. **********   End Copy Code
  1246. **********
  1247. */
  1248.  
  1249.  
  1250. /*  
  1251. **********
  1252. **********   Begin Maintain Scroll Position
  1253. **********
  1254. */
  1255.  
  1256. function loadAll(){
  1257.     try 
  1258.     {
  1259.         scrollPos = allHistory.getAttribute("Scroll");
  1260.     }
  1261.     catch(e){}
  1262. }
  1263.  
  1264. function saveAll(){
  1265.     try
  1266.     {
  1267.         allHistory.setAttribute("Scroll", mainSection.scrollTop);
  1268.     }
  1269.     catch(e){}
  1270. }
  1271.  
  1272. /*  
  1273. **********
  1274. **********   End Maintain Scroll Position
  1275. **********
  1276. */
  1277.  
  1278.  
  1279. /*  
  1280. **********
  1281. **********   Begin Send Mail
  1282. **********
  1283. */
  1284.  
  1285. function formatMailToLink(anchor)
  1286. {
  1287.     var release = "Release: " + anchor.doc_Release;
  1288.     var topicId = "Topic ID: " + anchor.doc_TopicID;
  1289.     var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
  1290.     var url = "URL: " + document.URL;
  1291.     var browser = "Browser: " + window.navigator.userAgent;
  1292.  
  1293.     var crlf = "%0d%0a"; 
  1294.     var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
  1295.     
  1296.     anchor.href = anchor.href + "&body=" + body;
  1297. }
  1298.  
  1299. /*  
  1300. **********
  1301. **********   End Send Mail
  1302. **********
  1303. */
  1304.  
  1305. /*************************************************************
  1306. // Begin WSS Specific Change.
  1307. *************************************************************/
  1308.  
  1309. if (!document.getElementById)
  1310.     document.getElementById = function() { return null; }
  1311.  
  1312. function initializeMenu(menuId, actuatorId) {
  1313.     var menu = document.getElementById(menuId);
  1314.     var actuator = document.getElementById(actuatorId);
  1315.  
  1316.     if (menu == null || actuator == null) return;
  1317.  
  1318.     blockHideMe = false;
  1319.  
  1320.     actuator.onclick = function() {
  1321.     this.showMenu();
  1322.     return false;
  1323.     }
  1324.  
  1325.     actuator.showMenu = function() {
  1326.         menu.style.top =  Calculate_offsetTop(window.event.srcElement) + 18; //window.event.clientY + 10 + "px";
  1327.         menu.style.left = this.offsetLeft -17 + "px";
  1328.         menu.style.visibility = "visible";
  1329.         currentMenu = menu;
  1330.     }
  1331.  
  1332.     actuator.onkeydown=function() {
  1333.         if(event.keyCode==40) {
  1334.         this.showMenu();
  1335.         event.keyCode = 9;
  1336.     }
  1337.     }
  1338.     menu.onmouseover=function() {
  1339.         this.style.visibility = "visible";
  1340.     }
  1341.    
  1342.     menu.onmouseout=function() {
  1343.         this.style.visibility = "hidden";
  1344.     i = 1;
  1345.     try {
  1346.         while (i < 100)
  1347.         {
  1348.             menuObj = document.getElementById(i);
  1349.             if (menuObj != null) {
  1350.                 menuObj.fireEvent("onfocusout");
  1351.             }
  1352.             i++;
  1353.         }
  1354.     }
  1355.     catch (e) {i = 0;}
  1356.     }
  1357.  
  1358.     menu.onfocusout=function() {
  1359.         var activeObj = document.activeElement;
  1360.         if(activeObj.nodeName != "LI") {
  1361.             this.style.visibility = "hidden";
  1362.         }
  1363.     }
  1364.  
  1365.     menu.onkeydown=function() {
  1366.     blockHideMe = false;
  1367.  
  1368.     var currentObj = null;
  1369.     currentObj = document.activeElement; 
  1370.  
  1371.     ///////////
  1372.     //shift+tab key
  1373.     ///////////
  1374.     if(event.keyCode==9) {
  1375.         // shift-tab key
  1376.         if(event.shiftKey==true) {
  1377.         if (document.URL.indexOf(".chm::")!=-1) {
  1378.             //do nothing
  1379.         }
  1380.         else {
  1381.             if(parseInt(currentObj.id) != "NaN") {    
  1382.                 var aId = parseInt(currentObj.id)-1;
  1383.                    if(currentObj.id=="1") {
  1384.                HideMe(parseInt(currentObj.id)+1, false);
  1385.                 currentObj.fireEvent("onfocusout");
  1386.             } 
  1387.         else
  1388.         {
  1389.         infoCount = itemCount(document);
  1390.         var collapsedSections = new Array();
  1391.         collapsedSections = ulCount(document);
  1392.  
  1393.         for (var a = 2; a < collapsedSections.length; a++)
  1394.         {
  1395.             if(currentObj.id==collapsedSections[a]-1) {
  1396.                HideMe(parseInt(currentObj.id)+1, false);
  1397.                    currentObj.fireEvent("onfocusout");
  1398.                aId=collapsedSections[a-1]; 
  1399.             }
  1400.         }
  1401.         }//else
  1402.         } 
  1403.             } 
  1404.     }
  1405.  
  1406.     ///////////
  1407.     //tab key
  1408.     ///////////
  1409.     else {
  1410.        if (document.URL.indexOf(".chm::")!=-1) {
  1411.          currentObj = document.getElementById(currentObj.id);
  1412.          currentObj.fireEvent("onfocusout");
  1413.          HideMe("InfoMenu", false);    
  1414.          currentObj = document.getElementById("collapseAllLabel");
  1415.          currentObj.focus();
  1416.          return;
  1417.        } else {
  1418.         if(parseInt(currentObj.id) != "NaN") {
  1419.         infoCount = itemCount(document);
  1420.         var collapsedSections = new Array();
  1421.         collapsedSections = ulCount(document);
  1422.         //Rule out first section
  1423.         for (var a = 2; a < collapsedSections.length; a++)
  1424.         {
  1425.             if(currentObj.id==collapsedSections[a]-2) {
  1426.             if (collapsedSections[a-1] != 1) {
  1427.                 var prevOne = document.getElementById(collapsedSections[a-1]);
  1428.                     prevOne.fireEvent("onfocusout");
  1429.             }//if
  1430.             }//if
  1431.         }//for
  1432.                 var aId = parseInt(currentObj.id)+1;
  1433.                 var nextOne = document.getElementById(aId.toString());
  1434.  
  1435.                 if(nextOne !=null) {
  1436.                if(nextOne.style.visibility=="hidden") {
  1437.                    nextOne.style.visibility = "visible";
  1438.                }
  1439.                if(nextOne.nodeName=="UL") {
  1440.                nextOne.setActive();
  1441.                        aId = parseInt(nextOne.id)+1;
  1442.                        nextOne = document.getElementById(aId.toString());
  1443.                        if(nextOne !=null) {
  1444.                      if(nextOne.style.visibility=="hidden") {
  1445.                         nextOne.style.visibility = "visible";
  1446.                      }
  1447.                    }
  1448.                 }
  1449.  
  1450.                       nextOne.fireEvent("onmouseover"); 
  1451.                 }
  1452.             }
  1453.             }
  1454.     }
  1455.     } //if
  1456.     ///////////
  1457.     // down arrow key
  1458.     ///////////
  1459.     else if(event.keyCode==40) {
  1460.             var aId = parseInt(currentObj.id)+1;
  1461.         if(parseInt(currentObj.id) != "NaN") {
  1462.         infoCount = itemCount(document);
  1463.         var collapsedSections = new Array();
  1464.         collapsedSections = ulCount(document);
  1465.         //Rule out first section
  1466.              if(currentObj.id=="1") {
  1467.             HideMe(parseInt(currentObj.id)+1, false);
  1468.             aId=collapsedSections[3]-1; 
  1469.             currentObj.fireEvent("onfocusout");
  1470.         }
  1471.         else if(currentObj.id==collapsedSections[collapsedSections.length-1]-1||currentObj.id==infoCount) {
  1472.             currentObj = document.getElementById(currentObj.id);
  1473.                 currentObj.fireEvent("onfocusout");
  1474.                 HideMe("InfoMenu", false);    
  1475.                 currentObj = document.getElementById("collapseAllLabel");
  1476.                 currentObj.focus();
  1477.                 return; 
  1478.         }
  1479.         else {
  1480.         for (var a = 2; a < collapsedSections.length; a++)
  1481.         {
  1482.  
  1483.                     if(currentObj.id==collapsedSections[a]-2) {
  1484.                 currentObj.setActive();
  1485.                 currentObj = document.getElementById(collapsedSections[a-1]);
  1486.                 currentObj.fireEvent("onfocusout");
  1487.                    } else if(currentObj.id==collapsedSections[a]-1) {
  1488.                 HideMe(collapsedSections[a]+1, false);
  1489.                 aId=collapsedSections[a+1]-1; 
  1490.                 currentObj.fireEvent("onfocusout");
  1491.             }
  1492.         }
  1493.         }
  1494.             var nextOne = document.getElementById(aId.toString());
  1495.                 if(nextOne !=null) {
  1496.            if(nextOne.style.visibility=="hidden") {
  1497.                nextOne.style.visibility = "visible";
  1498.            }
  1499.            if(nextOne.nodeName=="UL") {
  1500.                nextOne.setActive();
  1501.                    aId = parseInt(nextOne.id)+1;
  1502.                    nextOne = document.getElementById(aId.toString());
  1503.                    if(nextOne !=null) {
  1504.                    if(nextOne.style.visibility=="hidden") {
  1505.                        nextOne.style.visibility = "visible";
  1506.                    }
  1507.                 }
  1508.             }
  1509.             nextOne.setActive();
  1510.                        nextOne.fireEvent("onmouseover"); 
  1511.             }
  1512.  
  1513.             }
  1514.     }
  1515.  
  1516.     ///////////
  1517.     // right arrow key
  1518.     ///////////
  1519.         else if(event.keyCode==39) {
  1520.         if(parseInt(currentObj.id) != "NaN") {
  1521.             var aId = parseInt(currentObj.id);
  1522.         infoCount = itemCount(document);
  1523.         var collapsedSections = new Array();
  1524.         collapsedSections = ulCount(document);
  1525.         var foundOne = false;
  1526.         for (var a = 2; a < collapsedSections.length; a++)
  1527.         {
  1528.                if (aId == 1 || aId == collapsedSections[a]-1) {
  1529.                 foundOne=true;
  1530.             }
  1531.         }
  1532.         if (!foundOne) {
  1533.             return;
  1534.         }
  1535.         aId++;
  1536.             var nextOne = document.getElementById(aId.toString());
  1537.             if(nextOne !=null) {
  1538.            if(nextOne.style.visibility=="hidden") {
  1539.                nextOne.style.visibility = "visible";
  1540.            }
  1541.            if(nextOne.nodeName=="UL") {
  1542.                nextOne.setActive();
  1543.                    aId = parseInt(nextOne.id)+1;
  1544.                    nextOne = document.getElementById(aId.toString());
  1545.                    if(nextOne !=null) {
  1546.                  if(nextOne.style.visibility=="hidden") {
  1547.                     nextOne.style.visibility = "visible";
  1548.                  }
  1549.                }
  1550.             }
  1551.             nextOne.setActive();
  1552.                        nextOne.fireEvent("onmouseover"); 
  1553.             }
  1554.         }
  1555.     } 
  1556.     ///////////
  1557.         // left arrow key
  1558.     ///////////
  1559.         else if(event.keyCode==37) {
  1560.         if(parseInt(currentObj.id) != "NaN") {
  1561.             var cId = parseInt(currentObj.id);
  1562.             var aId = parseInt(currentObj.id)-1;
  1563.         infoCount = itemCount(document);
  1564.         var collapsedSections = new Array();
  1565.         collapsedSections = ulCount(document);
  1566.         for (var a = 1; a < collapsedSections.length; a++)
  1567.         {
  1568.             if (a != collapsedSections.length-1)
  1569.             {
  1570.                if (cId >= collapsedSections[a] && cId <= collapsedSections[a+1]) {
  1571.                 HideMe(collapsedSections[a], false);
  1572.                     currentObj.fireEvent("onfocusout");
  1573.                 aId=collapsedSections[a]-1;    
  1574.               }
  1575.             }
  1576.             else
  1577.             {
  1578.               if (cId >= collapsedSections[a] && cId <= infoCount) {
  1579.                 HideMe(collapsedSections[a], false);
  1580.                     currentObj.fireEvent("onfocusout");
  1581.                 aId=collapsedSections[a]-1;    
  1582.               }
  1583.             }
  1584.         }
  1585.                 var prevOne = document.getElementById(aId.toString());
  1586.                 if(prevOne !=null) {
  1587.            if(prevOne.style.visibility=="hidden") {
  1588.                prevOne.style.visibility = "visible";
  1589.            }
  1590.            prevOne.setActive();
  1591.                    prevOne.fireEvent("onmouseover");
  1592.         } 
  1593.         }
  1594.     }
  1595.     ///////////
  1596.     // up arrow key
  1597.     ///////////
  1598.     else if(event.keyCode==38) {
  1599.             if(parseInt(currentObj.id) != "NaN") {            
  1600.                 var aId = parseInt(currentObj.id)-1;
  1601.  
  1602.         infoCount = itemCount(document);
  1603.         var collapsedSections = new Array();
  1604.         collapsedSections = ulCount(document);
  1605.         //Rule out first section
  1606.                if(currentObj.id=="1") {
  1607.             currentObj = document.getElementById(collapsedSections[1]);
  1608.             currentObj.fireEvent("onfocusout");
  1609.             HideMe("InfoMenu", false);    
  1610.             currentObj = document.getElementById("collapseAllLabel");
  1611.             currentObj.focus();
  1612.             return;
  1613.         }
  1614.         else {
  1615.         for (var a = 2; a < collapsedSections.length; a++)
  1616.         {
  1617.                     if(currentObj.id==collapsedSections[a]-1) {
  1618.                HideMe(parseInt(currentObj.id)+1, false);
  1619.                 currentObj.fireEvent("onfocusout");
  1620.                aId=collapsedSections[a-1]-1;
  1621.             }
  1622.         }
  1623.         }
  1624.             if (aId==0) {
  1625.             aId=1;
  1626.             }
  1627.                 var prevOne = document.getElementById(aId.toString());
  1628.             if(prevOne.nodeName=="UL") {
  1629.             prevOne.fireEvent("onfocusout");
  1630.             aId--;
  1631.                     prevOne = document.getElementById(aId.toString());
  1632.                     if(prevOne !=null) {
  1633.                      if(prevOne.style.visibility=="hidden") {
  1634.                         prevOne.style.visibility = "visible";
  1635.                      }
  1636.                 }
  1637.                      }
  1638.              prevOne.setActive();
  1639.                      prevOne.fireEvent("onmouseover");        
  1640.         } 
  1641.         } 
  1642.     ///////////
  1643.     // return key
  1644.     ///////////
  1645.     else if(event.keyCode==13) {
  1646.             if(parseInt(currentObj.id) != "NaN") {
  1647.         infoCount = itemCount(document);
  1648.         var collapsedSections = new Array();
  1649.         collapsedSections = ulCount(document);
  1650.             var aId = parseInt(currentObj.id);
  1651.         for (var a = 2; a < collapsedSections.length; a++)
  1652.         {
  1653.                if (aId >= collapsedSections[a-1] && aId <= collapsedSections[a]) {
  1654.                 var linkObj = currentObj.children.item(0);
  1655.                 location.href = linkObj;
  1656.                     linkObj.fireEvent("onclick");
  1657.             }
  1658.         }
  1659.         }
  1660.         }
  1661.  
  1662.     }
  1663.  
  1664.     navRoot = document.getElementById("InfoMenu");
  1665.     for (i=0; i<navRoot.childNodes.length; i++) {
  1666.         var node = navRoot.childNodes[i];
  1667.         if (node.nodeName=="LI") {
  1668.             node.onclick=function() {
  1669.                 this.setActive();
  1670.             }
  1671.             node.onfocus=function() {
  1672.         if(this.style.visibility == "hidden") {
  1673.             this.style.visibility = "visible";
  1674.         }
  1675.  
  1676.             if(parseInt(this.id)>-1) {
  1677.                 var aId = parseInt(this.id);
  1678.         infoCount = itemCount(document);
  1679.         var collapsedSections = new Array();
  1680.         collapsedSections = ulCount(document);
  1681.         for (var a = 1; a < collapsedSections.length; a++)
  1682.         {
  1683.                if (aId == collapsedSections[a]) {
  1684.                     aId++;
  1685.                         menuObj = document.getElementById(aId.toString())
  1686.                     if(menuObj.style.visibility == "hidden") {
  1687.                                 menuObj.style.visibility = "visible";
  1688.                     return;
  1689.                     }//if
  1690.             }//if
  1691.         }//for
  1692.         }
  1693.                 this.className+=" over";
  1694.             }
  1695.  
  1696.             node.onfocusout=function() {
  1697.                 this.className=this.className.replace(" over", "");
  1698.             }
  1699.  
  1700.             node.onmouseover=function() {
  1701.                 this.className+=" over";
  1702.             if(parseInt(this.id)>-1) {
  1703.                 var aId = parseInt(this.id);
  1704.             if(aId=="1") {
  1705.                 aId++;
  1706.                     menuObj = document.getElementById(aId.toString());
  1707.                 if(menuObj.style.visibility == "hidden") {
  1708.                         menuObj.style.visibility = "visible";
  1709.                 }
  1710.             }
  1711.         else {
  1712.         infoCount = itemCount(document);
  1713.         var collapsedSections = new Array();
  1714.         collapsedSections = ulCount(document);
  1715.         for (var a = 2; a < collapsedSections.length; a++)
  1716.         {
  1717.                if (aId == collapsedSections[a]-1) {
  1718.                 aId++;
  1719.                         menuObj = document.getElementById(aId.toString());
  1720.                     if(menuObj.style.visibility == "hidden") {
  1721.                                menuObj.style.visibility = "visible";
  1722.                 }//if
  1723.                 }//if
  1724.  
  1725.         }//for
  1726.         }
  1727.         }
  1728.             }
  1729.   
  1730.   
  1731.             node.onmouseout=function() {
  1732.                 this.className=this.className.replace(" over", "");
  1733.             }
  1734.         }
  1735.     }
  1736. }
  1737.  
  1738. function itemCount(document)
  1739. {
  1740.  
  1741.     i = 1;
  1742.     j = 0;
  1743.     try {
  1744.         while (i < 100)
  1745.         {
  1746.             menuObj = document.getElementById(i);
  1747.             if (menuObj != null) {
  1748.                 //j is now the total of the menu
  1749.                 j++;
  1750.             }
  1751.             i++;
  1752.         }
  1753.     }
  1754.     catch (e) {i = 0;}
  1755.     return j;
  1756. }
  1757.  
  1758. function ulCount(document)
  1759. {
  1760.     i = 1;
  1761.     x = 2;
  1762.     j = 0
  1763.     var collapsedSections = new Array();
  1764.     //set the top collapsed section to #1
  1765.     collapsedSections[1] = 1;
  1766.     try {
  1767.         while (i < 100)
  1768.         {
  1769.             menuObj = document.getElementById(i);
  1770.             if (menuObj != null) {
  1771.                 j++;
  1772.                 if (menuObj.nodeName=="UL")
  1773.                 {
  1774.                     collapsedSections[x] = j;
  1775.                     x++;
  1776.                 }
  1777.             }
  1778.             i++;
  1779.         }
  1780.     }
  1781.     catch (e) {i = 0;}
  1782.     return collapsedSections;
  1783. }
  1784.  
  1785. function Calculate_offsetTop(e)
  1786. {
  1787.     if(e.tagName != 'DIV')
  1788.         return e.offsetTop + Calculate_offsetTop(e.offsetParent);
  1789.     else
  1790.         return e.offsetTop;
  1791. }
  1792. function HideMe(elemId, firstElem)
  1793. {
  1794.     var thisObj = document.getElementById(elemId);
  1795.  
  1796.     if(firstElem==true) {
  1797.         if(event.shiftKey==true) {
  1798.             thisObj.style.visibility = "hidden";
  1799.         }
  1800.     }
  1801.     else {
  1802.         if(!blockHideMe) {
  1803.         thisObj.style.visibility = "hidden";
  1804.         }
  1805.     }
  1806.         blockHideMe=false;
  1807. }
  1808.  
  1809. function Hide_LangFilter()
  1810. {
  1811.     var divElements = document.all.tags("div");
  1812.     for(i = 0; i < divElements.length; ++i)
  1813.     {
  1814.         if(divElements[i].id == "syntaxSection")
  1815.         {
  1816.             return;
  1817.         }
  1818.     }
  1819.     var spanElements = document.all.tags("span");
  1820.     var i;
  1821.     for(i = 0; i < spanElements.length; ++i)
  1822.     {
  1823.         if(spanElements[i].id == "languageFilterToolTip")
  1824.         {
  1825.             spanElements[i].style.display = "none";
  1826.             return;
  1827.         }
  1828.     }
  1829. }
  1830.  
  1831. // ****************************************************************************
  1832. // *                      Reftips (parameter popups)                          *
  1833. // ****************************************************************************
  1834. function initReftips(){
  1835.     var DLs = document.all.tags("DL");
  1836.     var PREs = document.all.tags("SPAN");
  1837.     if (DLs && PREs) {
  1838.         var iDL = 0;
  1839.         var iPRE = 0;
  1840.         var iSyntax = -1;
  1841.         for (var iPRE = 0; iPRE < PREs.length; iPRE++) {
  1842.             if (PREs[iPRE].className == "parameter") {
  1843.                 while (iDL < DLs.length && DLs[iDL].sourceIndex < PREs[iPRE].sourceIndex)
  1844.                     iDL++;            
  1845.                 if (iDL < DLs.length) {
  1846.                     initSyntax(PREs[iPRE], DLs[iDL]);
  1847.                     iSyntax = iPRE;
  1848.                 }
  1849.                 else
  1850.                     break;
  1851.             }
  1852.         }
  1853.  
  1854.         if (iSyntax >= 0) {
  1855.             var last = PREs[iSyntax];
  1856.             if (last.parentElement.tagName == "DIV") last = last.parentElement;                        last.insertAdjacentHTML('afterEnd','<DIV ID=reftip CLASS=reftip STYLE="position:absolute;visibility:hidden;overflow:visible;"></DIV>');
  1857.         }
  1858.     }
  1859. }
  1860.  
  1861. function initSyntax(pre, dl){
  1862.     var strSyn = pre.outerHTML;
  1863.     var ichStart = strSyn.indexOf('>', 0) + 1;
  1864.     var terms = dl.children.tags("DT");
  1865.     if (terms) {
  1866.         for (var iTerm = 0; iTerm < terms.length; iTerm++) {
  1867.             if (terms[iTerm].innerHTML.indexOf("<!--join-->")!=-1){
  1868.                 var word = terms[iTerm].innerText.replace(/\s$/, "");
  1869.                 var ichMatch = findTerm(strSyn, ichStart, word);
  1870.                 if (ichMatch < 1){
  1871.                     word = word.replace(/\s/, " ")
  1872.                     ichMatch = findTerm(strSyn, ichStart, word);
  1873.                 }
  1874.                 while (ichMatch > 0) {
  1875.                     var strTag = '<A HREF="" ONCLICK="showTip1(this)" CLASS="synParam">' + word + '</A>';
  1876.  
  1877.                     strSyn =
  1878.                         strSyn.slice(0, ichMatch) +
  1879.                         strTag +
  1880.                         strSyn.slice(ichMatch + word.length);
  1881.                     ichMatch = findTerm(strSyn, ichMatch + strTag.length, word);
  1882.                 }
  1883.                 
  1884.             }
  1885.         }
  1886.         for (var iTerm = 0; iTerm < terms.length; iTerm++) {
  1887.             if (terms[iTerm].innerHTML.indexOf("<!--join-->")==-1){
  1888.             var words = terms[iTerm].innerText.replace(/\[.+\]/g, " ").replace(/,/g, " ").split(" ");
  1889.                 var htm = terms[iTerm].innerHTML;
  1890.                 for (var iWord = 0; iWord < words.length; iWord++) {
  1891.                     var word = words[iWord];
  1892.  
  1893.                     if (word.length > 0 && htm.indexOf(word, 0) < 0)
  1894.                         word = word.replace(/:.+/, "");
  1895.  
  1896.                     if (word.length > 0) {
  1897.                         var ichMatch = findTerm(strSyn, ichStart, word);
  1898.                         while (ichMatch > 0) {
  1899.                             if (!isLinkText(strSyn.substring(ichMatch))){
  1900.                                 var strTag = '<A HREF="" ONCLICK="showTip1(this)" CLASS="synParam">' + word + '</A>';
  1901.                                 
  1902.                                 strSyn =
  1903.                                     strSyn.slice(0, ichMatch) +
  1904.                                     strTag +
  1905.                                     strSyn.slice(ichMatch + word.length);
  1906.  
  1907.                                 ichMatch = findTerm(strSyn, ichMatch + strTag.length, word);
  1908.                             }
  1909.                             else ichMatch = findTerm(strSyn, ichMatch + word.length, word);
  1910.                         }
  1911.                     }
  1912.                 }
  1913.             }
  1914.         }
  1915.     }
  1916.  
  1917.     // Replace the syntax block with our modified version.
  1918.     pre.outerHTML = strSyn;
  1919. }
  1920.  
  1921. function findTerm(strSyn, ichPos, strTerm)
  1922. {
  1923.     var ichMatch = strSyn.indexOf(strTerm, ichPos);
  1924.     while (ichMatch >= 0) {
  1925.         var prev = (ichMatch == 0) ? '\0' : strSyn.charAt(ichMatch - 1);
  1926.         var next = strSyn.charAt(ichMatch + strTerm.length);
  1927.         if (!isalnum(prev) && !isalnum(next) && !isInTag(strSyn, ichMatch)) {
  1928.             var ichComment = strSyn.indexOf("/*", ichPos);
  1929.             while (ichComment >= 0) {
  1930.                 if (ichComment > ichMatch) { 
  1931.                     ichComment = -1;
  1932.                     break; 
  1933.                 }
  1934.                 var ichEnd = strSyn.indexOf("*/", ichComment);
  1935.                 if (ichEnd < 0 || ichEnd > ichMatch)
  1936.                     break;
  1937.                 ichComment = strSyn.indexOf("/*", ichEnd);
  1938.             }
  1939.             if (ichComment < 0) {
  1940.                 ichComment = strSyn.indexOf("//", ichPos);
  1941.                 var newPos = 0;
  1942.                 if (ichComment >= 0) {
  1943.                     while (isInTag(strSyn, ichComment)) { //checks to see if the comment is in a tag (and thus part of a URL)
  1944.                         newPos = ichComment + 1;
  1945.                         ichComment = strSyn.indexOf("//", newPos);
  1946.                         if (ichComment < 0) 
  1947.                             break;
  1948.                     }
  1949.                     while (ichComment >= 0) {
  1950.                         if (ichComment > ichMatch) {
  1951.                             ichComment = -1;
  1952.                             break; 
  1953.                         }
  1954.                         var ichEnd = strSyn.indexOf("\n", ichComment);
  1955.                         if (ichEnd < 0 || ichEnd > ichMatch)
  1956.                             break;
  1957.                         ichComment = strSyn.indexOf("//", ichEnd);
  1958.                     }
  1959.                 }
  1960.             }
  1961.             if (ichComment < 0)
  1962.                 break;
  1963.         }
  1964.         ichMatch = strSyn.indexOf(strTerm, ichMatch + strTerm.length);
  1965.     }
  1966.     return ichMatch;
  1967. }
  1968. function isLinkText(strHtml){
  1969.     return strHtml.indexOf("<")==strHtml.toLowerCase().indexOf("<\/a>");
  1970. }
  1971.  
  1972. function isInTag(strHtml, ichPos)
  1973. {
  1974.     return strHtml.lastIndexOf('<', ichPos) >
  1975.         strHtml.lastIndexOf('>', ichPos);
  1976. }
  1977.  
  1978. function isalnum(ch){
  1979.     return ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || (ch == '_') || (ch == '-'));
  1980. }
  1981.  
  1982. function showTip1(link){
  1983.     bodyOnClick();
  1984.     var tip = document.all.reftip;
  1985.     if (!tip || !link)
  1986.         return;
  1987.  
  1988.     window.event.returnValue = false;
  1989.     window.event.cancelBubble = true;
  1990.  
  1991.     // Hide the tip if necessary and initialize its size.
  1992.     tip.style.visibility = "hidden";
  1993.     tip.style.pixelWidth = 260;
  1994.     tip.style.pixelHeight = 24;
  1995.  
  1996.     // Find the link target.
  1997.     var term = null;
  1998.     var def = null;
  1999.     var DLs = document.all.tags("DL");
  2000.  
  2001.     for (var iDL = 0; iDL < DLs.length; iDL++) {
  2002.         if (DLs[iDL].sourceIndex > link.sourceIndex) {
  2003.             var dl = DLs[iDL];
  2004.             var iMax = dl.children.length - 1;
  2005.             for (var iElem = 0; iElem < iMax; iElem++) {
  2006.                 var dt = dl.children[iElem];
  2007.                 if (dt.tagName == "DT" && dt.style.display != "none") {
  2008.                     if (findTerm(dt.innerText, 0, link.innerText) >= 0) {
  2009.                         var dd = dl.children[iElem + 1];
  2010.                         if (dd.tagName == "DD") {
  2011.                             term = dt;
  2012.                             def = dd;
  2013.                         }
  2014.                         break;
  2015.                     }
  2016.                 }
  2017.             }
  2018.             break;
  2019.         }
  2020.     }
  2021.  
  2022.     if (def) {
  2023.         window.linkElement = link;
  2024.         window.linkTarget = term;
  2025.         tip.innerHTML = '<DL><DT>' + term.innerHTML + '</DT><DD>' + def.innerHTML + '</DD></DL>';
  2026.         window.setTimeout("moveTip()", 0);
  2027.     }
  2028. }
  2029.  
  2030. function moveTip(){
  2031.     var tip = document.all.reftip;
  2032.     var link = window.linkElement;
  2033.     if (!tip || !link)
  2034.         return; //error
  2035.  
  2036.         var oBody = window.document.all["mainSection"];
  2037.  
  2038.         iOffsetY = oBody.scrollTop + oBody.offsetHeight/2;
  2039.     iOffsetX = 50;
  2040.  
  2041.     tip.style.pixelLeft = iOffsetX;
  2042.     tip.style.pixelTop = iOffsetY;
  2043.     tip.style.visibility = "visible";
  2044. }
  2045.  
  2046. function hideTip1(){
  2047.     if (window.linkElement) {
  2048.         window.linkElement.style.background = "";
  2049.         window.linkElement = null;
  2050.     }
  2051.  
  2052.     var tip = document.all.reftip;
  2053.     if (tip) {
  2054.         tip.style.visibility = "hidden";
  2055.         tip.innerHTML = "";
  2056.     }
  2057. }
  2058.  
  2059. function beginsWith(s1, s2){
  2060.     // Does s1 begin with s2?
  2061.     return s1.substring(0, s2.length) == s2;
  2062. }
  2063.  
  2064.  
  2065. function bodyOnClick(){
  2066.     var elem = window.event.srcElement;
  2067.     for (; elem; elem = elem.parentElement) {
  2068.         if (elem.id == "reftip" || elem.id == "PopUp" || elem.id == "In_Popup" )
  2069.         {
  2070.         elem.style.visibility = "hidden";
  2071.         if (elem.id == "reftip")
  2072.             return;
  2073.         }
  2074.     }        
  2075.     hideTip1();
  2076. }
  2077.  
  2078. /*************************************************************
  2079. // End WSS Specific Change.
  2080. *************************************************************/
  2081.