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 / sqlncli.msi / DP_sqlncli10_chm_32_1033 / local / script_main.js < prev    next >
Text File  |  2010-03-31  |  52KB  |  2,104 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.   try {
  935.     noReentry = true; // Prevent entry to OnLoadImage
  936.     
  937.     if(ItemCollapsed(imageItem.id) == true)
  938.     {
  939.         imageItem.src = collapseImage.src;
  940.         ExpandSection(imageItem);
  941.         RemoveCollapsedItem(imageItem.id);
  942.         
  943.         if(imageItem.id.indexOf("Family", 0) == 0)
  944.         {
  945.             protectedMembers = "on";
  946.             Set_up_checkboxes();
  947.             ChangeMembersOptionsFilterLabel();
  948.         }
  949.     }
  950.     else
  951.     {
  952.         imageItem.src = expandImage.src;
  953.         CollapseSection(imageItem);
  954.         AddCollapsedItem(imageItem.id);
  955.     }
  956.     
  957.     SetCollapseAll();
  958.  
  959.     noReentry = false;
  960.   }
  961.   catch(e) {}
  962. }
  963.  
  964. function ExpandCollapseAll(imageItem)
  965. {
  966.     noReentry = true; // Prevent entry to OnLoadImage
  967.     
  968.     var imgElements = document.getElementsByName("toggleSwitch");
  969.     var i;
  970.     
  971.     if(ItemCollapsed(imageItem.id) == true)
  972.     {
  973.         imageItem.src = collapseAllImage.src;
  974.         RemoveCollapsedItem(imageItem.id);
  975.         for(i = 0; i < imgElements.length; ++i)
  976.         {
  977.             imgElements[i].src = collapseImage.src;
  978.             ExpandSection(imgElements[i]);
  979.             RemoveCollapsedItem(imgElements[i].id);
  980.             
  981.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  982.                 protectedMembers = "on";
  983.         }
  984.         SetToggleAllLabel(false);
  985.     }
  986.     else
  987.     {
  988.         imageItem.src = expandAllImage.src;
  989.         AddCollapsedItem(imageItem.id);
  990.         for(i = 0; i < imgElements.length; ++i)
  991.         {
  992.             imgElements[i].src = expandImage.src;
  993.             CollapseSection(imgElements[i]);
  994.             AddCollapsedItem(imgElements[i].id);
  995.         }
  996.         SetToggleAllLabel(true);
  997.     }
  998.     
  999.     noReentry = false;
  1000. }
  1001.  
  1002. function ExpandCollapse_CheckKey(imageItem)
  1003. {
  1004.     if(window.event.keyCode == 13)
  1005.         ExpandCollapse(imageItem);
  1006. }
  1007.  
  1008. function ExpandCollapseAll_CheckKey(imageItem)
  1009. {
  1010.     if(window.event.keyCode == 13)
  1011.         ExpandCollapseAll(imageItem);
  1012. }
  1013.  
  1014. function ExpandSection(imageItem)
  1015. {
  1016.     try {
  1017.     imageItem.parentElement.parentElement.nextSibling.style.display    = "";
  1018.     }
  1019.     catch(e){}
  1020. }
  1021.  
  1022. function CollapseSection(imageItem)
  1023. {
  1024.     try {
  1025.     imageItem.parentElement.parentElement.nextSibling.style.display    = "none";
  1026.     }
  1027.     catch(e){}
  1028. }
  1029.  
  1030. function SetCollapseAll()
  1031. {
  1032.     var imageElement = document.getElementById("toggleAllImage");
  1033.     
  1034.     if(imageElement == null)
  1035.         return;
  1036.         
  1037.     var imgElements = document.getElementsByName("toggleSwitch");
  1038.     var allCollapsed = true;
  1039.     var i;
  1040.         
  1041.     for(i = 0; i < imgElements.length; ++i)
  1042.     {
  1043.         allCollapsed = allCollapsed && ItemCollapsed(imgElements[i].id)
  1044.     }
  1045.     
  1046.     if(allCollapsed)
  1047.     {
  1048.         imageElement.src = expandAllImage.src;
  1049.         AddCollapsedItem(imageElement.id);
  1050.     }
  1051.     else
  1052.     {
  1053.         imageElement.src = collapseAllImage.src;
  1054.         RemoveCollapsedItem(imageElement.id);
  1055.     }
  1056.     
  1057.     SetToggleAllLabel(allCollapsed);
  1058. }
  1059.  
  1060. function SetToggleAllLabel(allCollapsed)
  1061. {
  1062.     var labelElement;
  1063.     labelElement = document.getElementById("collapseAllLabel");
  1064.     
  1065.     if(labelElement == null)
  1066.         return;
  1067.         
  1068.     labelElement.style.display = "none";
  1069.     
  1070.     labelElement = document.getElementById("expandAllLabel");
  1071.     labelElement.style.display = "none";
  1072.     
  1073.     if(allCollapsed)
  1074.     {
  1075.         labelElement = document.getElementById("expandAllLabel");
  1076.         labelElement.style.display = "inline";
  1077.     }
  1078.     else
  1079.     {
  1080.         labelElement = document.getElementById("collapseAllLabel");
  1081.         labelElement.style.display = "inline";
  1082.     }
  1083. }
  1084.  
  1085. function ItemCollapsed(imageId)
  1086. {
  1087.     var i;
  1088.     
  1089.     for(i = 0; i < collapsedItems.length; ++i)
  1090.     {
  1091.         if(imageId == collapsedItems[i])
  1092.             return true;
  1093.     }
  1094.     
  1095.     return false;
  1096. }
  1097.  
  1098. function AddCollapsedItem(imageId)
  1099. {    
  1100.     if(ItemCollapsed(imageId) == false)
  1101.     collapsedItems[collapsedItems.length] = imageId;
  1102. }
  1103.  
  1104. function RemoveCollapsedItem(imageId)
  1105. {
  1106.     var i;
  1107.     
  1108.     for(i = 0; i < collapsedItems.length; ++i)
  1109.     {
  1110.         if(imageId == collapsedItems[i])
  1111.             collapsedItems.splice(i, 1);
  1112.     }
  1113. }
  1114.  
  1115. function SaveSections()
  1116. {
  1117.     var i;
  1118.     var x = 0;
  1119.     
  1120.     CleanUserDataStore();
  1121.     
  1122.     for(i = 0; i < collapsedItems.length; ++i)
  1123.     {
  1124.         if(ShouldSave(collapsedItems[i]) == true)
  1125.         {
  1126.             Save("imageValue" + x, collapsedItems[i]);
  1127.             x++;
  1128.         }
  1129.     }
  1130.     
  1131.     Save("IsFirstPage", false);
  1132. }
  1133.  
  1134. function LoadSections()
  1135. {
  1136.     var i = 0;
  1137.     var imageId = Load("imageValue" + i);
  1138.  
  1139.     while(imageId != null)
  1140.     {
  1141.         var imageItem = document.getElementById(imageId);
  1142.         //alert(imageItem.id);
  1143.         if(imageItem != null && collapsedSections[imageId] == "not expanded")
  1144.         {
  1145.             RemoveCollapsedItem(imageId);
  1146.             
  1147.             if(imageItem.id.indexOf("Family", 0) == 0)
  1148.             {
  1149.                 if(protectedMembers == "on")
  1150.                 {
  1151.                     ExpandCollapse(imageItem);
  1152.                 }
  1153.             }
  1154.             else
  1155.             {
  1156.                 ExpandCollapse(imageItem);
  1157.             }
  1158.         }
  1159.     
  1160.         i++;
  1161.         imageId = Load("imageValue" + i);
  1162.     }
  1163.     
  1164.     SetCollapseAll();
  1165.  
  1166.     //Added for bug 4554
  1167.     var imgElements = document.getElementsByName("toggleSwitch");
  1168.     var i;
  1169.         
  1170.     for(i = 0; i < imgElements.length; ++i)
  1171.     {
  1172.         
  1173.         if(imgElements[i].id =="sectionToggleRH")
  1174.         {
  1175.             ExpandCollapse(imgElements[i]);
  1176.         }
  1177.     }
  1178.  
  1179. }
  1180.  
  1181. function CleanUserDataStore()
  1182. {
  1183.     var i = 0;
  1184.     var imageId = Load("imageValue" + i);
  1185.     
  1186.     while(imageId != null)
  1187.     {
  1188.         RemoveAttribute("imageValue" + i);
  1189.         i++;
  1190.         imageId = Load("imageValue" + i);
  1191.     }
  1192. }
  1193.  
  1194. function ShouldSave(imageId)
  1195. {
  1196.     var toggleName;
  1197.     
  1198.     if(imageId == "toggleAllImage")
  1199.         return false;
  1200.     
  1201.     toggleName = "procedureToggle";
  1202.     if(imageId.indexOf(toggleName, 0) == 0)
  1203.         return false;
  1204.         
  1205.     toggleName = "sectionToggle";
  1206.     if(imageId.indexOf(toggleName, 0) == 0)
  1207.         return false;
  1208.     
  1209.     return true;
  1210. }
  1211.  
  1212. function OpenSection(imageItem)
  1213. {
  1214.     if(ItemCollapsed(imageItem.id) == true)
  1215.         ExpandCollapse(imageItem);
  1216. }
  1217.  
  1218. /*    
  1219. **********
  1220. **********   End Expand/Collapse
  1221. **********
  1222. */
  1223.  
  1224.  
  1225. /*  
  1226. **********
  1227. **********   Begin Copy Code
  1228. **********
  1229. */
  1230.  
  1231. function CopyCode(key)
  1232. {
  1233.     var trElements = document.all.tags("tr");
  1234.     var i;
  1235.     for(i = 0; i < trElements.length; ++i)
  1236.     {
  1237.         if(key.parentElement.parentElement.parentElement == trElements[i].parentElement)
  1238.         {
  1239.             window.clipboardData.setData("Text", trElements[i].innerText);
  1240.         }
  1241.     }
  1242. }
  1243.  
  1244. function ChangeCopyCodeIcon(key)
  1245. {
  1246.     var i;
  1247.     var imageElements = document.getElementsByName("ccImage")
  1248.     for(i=0; i<imageElements.length; ++i)
  1249.     {
  1250.         if(imageElements[i].parentElement == key)
  1251.         {
  1252.             if(imageElements[i].src == copyImage.src)
  1253.                 imageElements[i].src = copyHoverImage.src;
  1254.             else
  1255.                 imageElements[i].src = copyImage.src;
  1256.         }
  1257.     }
  1258. }
  1259.  
  1260. function CopyCode_CheckKey(key)
  1261. {
  1262.     if(window.event.keyCode == 13)
  1263.         CopyCode(key);
  1264. }
  1265.  
  1266. /*  
  1267. **********
  1268. **********   End Copy Code
  1269. **********
  1270. */
  1271.  
  1272.  
  1273. /*  
  1274. **********
  1275. **********   Begin Maintain Scroll Position
  1276. **********
  1277. */
  1278.  
  1279. function loadAll(){
  1280.     try 
  1281.     {
  1282.         scrollPos = allHistory.getAttribute("Scroll");
  1283.     }
  1284.     catch(e){}
  1285. }
  1286.  
  1287. function saveAll(){
  1288.     try
  1289.     {
  1290.         allHistory.setAttribute("Scroll", mainSection.scrollTop);
  1291.     }
  1292.     catch(e){}
  1293. }
  1294.  
  1295. /*  
  1296. **********
  1297. **********   End Maintain Scroll Position
  1298. **********
  1299. */
  1300.  
  1301.  
  1302. /*  
  1303. **********
  1304. **********   Begin Send Mail
  1305. **********
  1306. */
  1307.  
  1308. function formatMailToLink(anchor)
  1309. {
  1310.     var release = "Release: " + anchor.doc_Release;
  1311.     var topicId = "Topic ID: " + anchor.doc_TopicID;
  1312.     var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
  1313.     var url = "URL: " + document.URL;
  1314.     var browser = "Browser: " + window.navigator.userAgent;
  1315.  
  1316.     var crlf = "%0d%0a"; 
  1317.     var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
  1318.     
  1319.     anchor.href = anchor.href + "&body=" + body;
  1320. }
  1321.  
  1322. /*  
  1323. **********
  1324. **********   End Send Mail
  1325. **********
  1326. */
  1327.  
  1328. /*************************************************************
  1329. // Begin WSS Specific Change.
  1330. *************************************************************/
  1331.  
  1332. if (!document.getElementById)
  1333.     document.getElementById = function() { return null; }
  1334.  
  1335. function initializeMenu(menuId, actuatorId) {
  1336.     var menu = document.getElementById(menuId);
  1337.     var actuator = document.getElementById(actuatorId);
  1338.  
  1339.     if (menu == null || actuator == null) return;
  1340.  
  1341.     blockHideMe = false;
  1342.  
  1343.     actuator.onclick = function() {
  1344.     this.showMenu();
  1345.     return false;
  1346.     }
  1347.  
  1348.     actuator.showMenu = function() {
  1349.         menu.style.top =  Calculate_offsetTop(window.event.srcElement) + 18; //window.event.clientY + 10 + "px";
  1350.         menu.style.left = this.offsetLeft -17 + "px";
  1351.         menu.style.visibility = "visible";
  1352.         currentMenu = menu;
  1353.     }
  1354.  
  1355.     actuator.onkeydown=function() {
  1356.         if(event.keyCode==40) {
  1357.         this.showMenu();
  1358.         event.keyCode = 9;
  1359.     }
  1360.     }
  1361.     menu.onmouseover=function() {
  1362.         this.style.visibility = "visible";
  1363.     }
  1364.    
  1365.     menu.onmouseout=function() {
  1366.         this.style.visibility = "hidden";
  1367.     i = 1;
  1368.     try {
  1369.         while (i < 100)
  1370.         {
  1371.             menuObj = document.getElementById(i);
  1372.             if (menuObj != null) {
  1373.                 menuObj.fireEvent("onfocusout");
  1374.             }
  1375.             i++;
  1376.         }
  1377.     }
  1378.     catch (e) {i = 0;}
  1379.     }
  1380.  
  1381.     menu.onfocusout=function() {
  1382.         var activeObj = document.activeElement;
  1383.         if(activeObj.nodeName != "LI") {
  1384.             this.style.visibility = "hidden";
  1385.         }
  1386.     }
  1387.  
  1388.     menu.onkeydown=function() {
  1389.     blockHideMe = false;
  1390.  
  1391.     var currentObj = null;
  1392.     currentObj = document.activeElement; 
  1393.  
  1394.     ///////////
  1395.     //shift+tab key
  1396.     ///////////
  1397.     if(event.keyCode==9) {
  1398.         // shift-tab key
  1399.         if(event.shiftKey==true) {
  1400.         if (document.URL.indexOf(".chm::")!=-1) {
  1401.             //do nothing
  1402.         }
  1403.         else {
  1404.             if(parseInt(currentObj.id) != "NaN") {    
  1405.                 var aId = parseInt(currentObj.id)-1;
  1406.                    if(currentObj.id=="1") {
  1407.                HideMe(parseInt(currentObj.id)+1, false);
  1408.                 currentObj.fireEvent("onfocusout");
  1409.             } 
  1410.         else
  1411.         {
  1412.         infoCount = itemCount(document);
  1413.         var collapsedSections = new Array();
  1414.         collapsedSections = ulCount(document);
  1415.  
  1416.         for (var a = 2; a < collapsedSections.length; a++)
  1417.         {
  1418.             if(currentObj.id==collapsedSections[a]-1) {
  1419.                HideMe(parseInt(currentObj.id)+1, false);
  1420.                    currentObj.fireEvent("onfocusout");
  1421.                aId=collapsedSections[a-1]; 
  1422.             }
  1423.         }
  1424.         }//else
  1425.         } 
  1426.             } 
  1427.     }
  1428.  
  1429.     ///////////
  1430.     //tab key
  1431.     ///////////
  1432.     else {
  1433.        if (document.URL.indexOf(".chm::")!=-1) {
  1434.          currentObj = document.getElementById(currentObj.id);
  1435.          currentObj.fireEvent("onfocusout");
  1436.          HideMe("InfoMenu", false);    
  1437.          currentObj = document.getElementById("collapseAllLabel");
  1438.          currentObj.focus();
  1439.          return;
  1440.        } else {
  1441.         if(parseInt(currentObj.id) != "NaN") {
  1442.         infoCount = itemCount(document);
  1443.         var collapsedSections = new Array();
  1444.         collapsedSections = ulCount(document);
  1445.         //Rule out first section
  1446.         for (var a = 2; a < collapsedSections.length; a++)
  1447.         {
  1448.             if(currentObj.id==collapsedSections[a]-2) {
  1449.             if (collapsedSections[a-1] != 1) {
  1450.                 var prevOne = document.getElementById(collapsedSections[a-1]);
  1451.                     prevOne.fireEvent("onfocusout");
  1452.             }//if
  1453.             }//if
  1454.         }//for
  1455.                 var aId = parseInt(currentObj.id)+1;
  1456.                 var nextOne = document.getElementById(aId.toString());
  1457.  
  1458.                 if(nextOne !=null) {
  1459.                if(nextOne.style.visibility=="hidden") {
  1460.                    nextOne.style.visibility = "visible";
  1461.                }
  1462.                if(nextOne.nodeName=="UL") {
  1463.                nextOne.setActive();
  1464.                        aId = parseInt(nextOne.id)+1;
  1465.                        nextOne = document.getElementById(aId.toString());
  1466.                        if(nextOne !=null) {
  1467.                      if(nextOne.style.visibility=="hidden") {
  1468.                         nextOne.style.visibility = "visible";
  1469.                      }
  1470.                    }
  1471.                 }
  1472.  
  1473.                       nextOne.fireEvent("onmouseover"); 
  1474.                 }
  1475.             }
  1476.             }
  1477.     }
  1478.     } //if
  1479.     ///////////
  1480.     // down arrow key
  1481.     ///////////
  1482.     else if(event.keyCode==40) {
  1483.             var aId = parseInt(currentObj.id)+1;
  1484.         if(parseInt(currentObj.id) != "NaN") {
  1485.         infoCount = itemCount(document);
  1486.         var collapsedSections = new Array();
  1487.         collapsedSections = ulCount(document);
  1488.         //Rule out first section
  1489.              if(currentObj.id=="1") {
  1490.             HideMe(parseInt(currentObj.id)+1, false);
  1491.             aId=collapsedSections[3]-1; 
  1492.             currentObj.fireEvent("onfocusout");
  1493.         }
  1494.         else if(currentObj.id==collapsedSections[collapsedSections.length-1]-1||currentObj.id==infoCount) {
  1495.             currentObj = document.getElementById(currentObj.id);
  1496.                 currentObj.fireEvent("onfocusout");
  1497.                 HideMe("InfoMenu", false);    
  1498.                 currentObj = document.getElementById("collapseAllLabel");
  1499.                 currentObj.focus();
  1500.                 return; 
  1501.         }
  1502.         else {
  1503.         for (var a = 2; a < collapsedSections.length; a++)
  1504.         {
  1505.  
  1506.                     if(currentObj.id==collapsedSections[a]-2) {
  1507.                 currentObj.setActive();
  1508.                 currentObj = document.getElementById(collapsedSections[a-1]);
  1509.                 currentObj.fireEvent("onfocusout");
  1510.                    } else if(currentObj.id==collapsedSections[a]-1) {
  1511.                 HideMe(collapsedSections[a]+1, false);
  1512.                 aId=collapsedSections[a+1]-1; 
  1513.                 currentObj.fireEvent("onfocusout");
  1514.             }
  1515.         }
  1516.         }
  1517.             var nextOne = document.getElementById(aId.toString());
  1518.                 if(nextOne !=null) {
  1519.            if(nextOne.style.visibility=="hidden") {
  1520.                nextOne.style.visibility = "visible";
  1521.            }
  1522.            if(nextOne.nodeName=="UL") {
  1523.                nextOne.setActive();
  1524.                    aId = parseInt(nextOne.id)+1;
  1525.                    nextOne = document.getElementById(aId.toString());
  1526.                    if(nextOne !=null) {
  1527.                    if(nextOne.style.visibility=="hidden") {
  1528.                        nextOne.style.visibility = "visible";
  1529.                    }
  1530.                 }
  1531.             }
  1532.             nextOne.setActive();
  1533.                        nextOne.fireEvent("onmouseover"); 
  1534.             }
  1535.  
  1536.             }
  1537.     }
  1538.  
  1539.     ///////////
  1540.     // right arrow key
  1541.     ///////////
  1542.         else if(event.keyCode==39) {
  1543.         if(parseInt(currentObj.id) != "NaN") {
  1544.             var aId = parseInt(currentObj.id);
  1545.         infoCount = itemCount(document);
  1546.         var collapsedSections = new Array();
  1547.         collapsedSections = ulCount(document);
  1548.         var foundOne = false;
  1549.         for (var a = 2; a < collapsedSections.length; a++)
  1550.         {
  1551.                if (aId == 1 || aId == collapsedSections[a]-1) {
  1552.                 foundOne=true;
  1553.             }
  1554.         }
  1555.         if (!foundOne) {
  1556.             return;
  1557.         }
  1558.         aId++;
  1559.             var nextOne = document.getElementById(aId.toString());
  1560.             if(nextOne !=null) {
  1561.            if(nextOne.style.visibility=="hidden") {
  1562.                nextOne.style.visibility = "visible";
  1563.            }
  1564.            if(nextOne.nodeName=="UL") {
  1565.                nextOne.setActive();
  1566.                    aId = parseInt(nextOne.id)+1;
  1567.                    nextOne = document.getElementById(aId.toString());
  1568.                    if(nextOne !=null) {
  1569.                  if(nextOne.style.visibility=="hidden") {
  1570.                     nextOne.style.visibility = "visible";
  1571.                  }
  1572.                }
  1573.             }
  1574.             nextOne.setActive();
  1575.                        nextOne.fireEvent("onmouseover"); 
  1576.             }
  1577.         }
  1578.     } 
  1579.     ///////////
  1580.         // left arrow key
  1581.     ///////////
  1582.         else if(event.keyCode==37) {
  1583.         if(parseInt(currentObj.id) != "NaN") {
  1584.             var cId = parseInt(currentObj.id);
  1585.             var aId = parseInt(currentObj.id)-1;
  1586.         infoCount = itemCount(document);
  1587.         var collapsedSections = new Array();
  1588.         collapsedSections = ulCount(document);
  1589.         for (var a = 1; a < collapsedSections.length; a++)
  1590.         {
  1591.             if (a != collapsedSections.length-1)
  1592.             {
  1593.                if (cId >= collapsedSections[a] && cId <= collapsedSections[a+1]) {
  1594.                 HideMe(collapsedSections[a], false);
  1595.                     currentObj.fireEvent("onfocusout");
  1596.                 aId=collapsedSections[a]-1;    
  1597.               }
  1598.             }
  1599.             else
  1600.             {
  1601.               if (cId >= collapsedSections[a] && cId <= infoCount) {
  1602.                 HideMe(collapsedSections[a], false);
  1603.                     currentObj.fireEvent("onfocusout");
  1604.                 aId=collapsedSections[a]-1;    
  1605.               }
  1606.             }
  1607.         }
  1608.                 var prevOne = document.getElementById(aId.toString());
  1609.                 if(prevOne !=null) {
  1610.            if(prevOne.style.visibility=="hidden") {
  1611.                prevOne.style.visibility = "visible";
  1612.            }
  1613.            prevOne.setActive();
  1614.                    prevOne.fireEvent("onmouseover");
  1615.         } 
  1616.         }
  1617.     }
  1618.     ///////////
  1619.     // up arrow key
  1620.     ///////////
  1621.     else if(event.keyCode==38) {
  1622.             if(parseInt(currentObj.id) != "NaN") {            
  1623.                 var aId = parseInt(currentObj.id)-1;
  1624.  
  1625.         infoCount = itemCount(document);
  1626.         var collapsedSections = new Array();
  1627.         collapsedSections = ulCount(document);
  1628.         //Rule out first section
  1629.                if(currentObj.id=="1") {
  1630.             currentObj = document.getElementById(collapsedSections[1]);
  1631.             currentObj.fireEvent("onfocusout");
  1632.             HideMe("InfoMenu", false);    
  1633.             currentObj = document.getElementById("collapseAllLabel");
  1634.             currentObj.focus();
  1635.             return;
  1636.         }
  1637.         else {
  1638.         for (var a = 2; a < collapsedSections.length; a++)
  1639.         {
  1640.                     if(currentObj.id==collapsedSections[a]-1) {
  1641.                HideMe(parseInt(currentObj.id)+1, false);
  1642.                 currentObj.fireEvent("onfocusout");
  1643.                aId=collapsedSections[a-1]-1;
  1644.             }
  1645.         }
  1646.         }
  1647.             if (aId==0) {
  1648.             aId=1;
  1649.             }
  1650.                 var prevOne = document.getElementById(aId.toString());
  1651.             if(prevOne.nodeName=="UL") {
  1652.             prevOne.fireEvent("onfocusout");
  1653.             aId--;
  1654.                     prevOne = document.getElementById(aId.toString());
  1655.                     if(prevOne !=null) {
  1656.                      if(prevOne.style.visibility=="hidden") {
  1657.                         prevOne.style.visibility = "visible";
  1658.                      }
  1659.                 }
  1660.                      }
  1661.              prevOne.setActive();
  1662.                      prevOne.fireEvent("onmouseover");        
  1663.         } 
  1664.         } 
  1665.     ///////////
  1666.     // return key
  1667.     ///////////
  1668.     else if(event.keyCode==13) {
  1669.             if(parseInt(currentObj.id) != "NaN") {
  1670.         infoCount = itemCount(document);
  1671.         var collapsedSections = new Array();
  1672.         collapsedSections = ulCount(document);
  1673.             var aId = parseInt(currentObj.id);
  1674.         for (var a = 2; a < collapsedSections.length; a++)
  1675.         {
  1676.                if (aId >= collapsedSections[a-1] && aId <= collapsedSections[a]) {
  1677.                 var linkObj = currentObj.children.item(0);
  1678.                 location.href = linkObj;
  1679.                     linkObj.fireEvent("onclick");
  1680.             }
  1681.         }
  1682.         }
  1683.         }
  1684.  
  1685.     }
  1686.  
  1687.     navRoot = document.getElementById("InfoMenu");
  1688.     for (i=0; i<navRoot.childNodes.length; i++) {
  1689.         var node = navRoot.childNodes[i];
  1690.         if (node.nodeName=="LI") {
  1691.             node.onclick=function() {
  1692.                 this.setActive();
  1693.             }
  1694.             node.onfocus=function() {
  1695.         if(this.style.visibility == "hidden") {
  1696.             this.style.visibility = "visible";
  1697.         }
  1698.  
  1699.             if(parseInt(this.id)>-1) {
  1700.                 var aId = parseInt(this.id);
  1701.         infoCount = itemCount(document);
  1702.         var collapsedSections = new Array();
  1703.         collapsedSections = ulCount(document);
  1704.         for (var a = 1; a < collapsedSections.length; a++)
  1705.         {
  1706.                if (aId == collapsedSections[a]) {
  1707.                     aId++;
  1708.                         menuObj = document.getElementById(aId.toString())
  1709.                     if(menuObj.style.visibility == "hidden") {
  1710.                                 menuObj.style.visibility = "visible";
  1711.                     return;
  1712.                     }//if
  1713.             }//if
  1714.         }//for
  1715.         }
  1716.                 this.className+=" over";
  1717.             }
  1718.  
  1719.             node.onfocusout=function() {
  1720.                 this.className=this.className.replace(" over", "");
  1721.             }
  1722.  
  1723.             node.onmouseover=function() {
  1724.                 this.className+=" over";
  1725.             if(parseInt(this.id)>-1) {
  1726.                 var aId = parseInt(this.id);
  1727.             if(aId=="1") {
  1728.                 aId++;
  1729.                     menuObj = document.getElementById(aId.toString());
  1730.                 if(menuObj.style.visibility == "hidden") {
  1731.                         menuObj.style.visibility = "visible";
  1732.                 }
  1733.             }
  1734.         else {
  1735.         infoCount = itemCount(document);
  1736.         var collapsedSections = new Array();
  1737.         collapsedSections = ulCount(document);
  1738.         for (var a = 2; a < collapsedSections.length; a++)
  1739.         {
  1740.                if (aId == collapsedSections[a]-1) {
  1741.                 aId++;
  1742.                         menuObj = document.getElementById(aId.toString());
  1743.                     if(menuObj.style.visibility == "hidden") {
  1744.                                menuObj.style.visibility = "visible";
  1745.                 }//if
  1746.                 }//if
  1747.  
  1748.         }//for
  1749.         }
  1750.         }
  1751.             }
  1752.   
  1753.   
  1754.             node.onmouseout=function() {
  1755.                 this.className=this.className.replace(" over", "");
  1756.             }
  1757.         }
  1758.     }
  1759. }
  1760.  
  1761. function itemCount(document)
  1762. {
  1763.  
  1764.     i = 1;
  1765.     j = 0;
  1766.     try {
  1767.         while (i < 100)
  1768.         {
  1769.             menuObj = document.getElementById(i);
  1770.             if (menuObj != null) {
  1771.                 //j is now the total of the menu
  1772.                 j++;
  1773.             }
  1774.             i++;
  1775.         }
  1776.     }
  1777.     catch (e) {i = 0;}
  1778.     return j;
  1779. }
  1780.  
  1781. function ulCount(document)
  1782. {
  1783.     i = 1;
  1784.     x = 2;
  1785.     j = 0
  1786.     var collapsedSections = new Array();
  1787.     //set the top collapsed section to #1
  1788.     collapsedSections[1] = 1;
  1789.     try {
  1790.         while (i < 100)
  1791.         {
  1792.             menuObj = document.getElementById(i);
  1793.             if (menuObj != null) {
  1794.                 j++;
  1795.                 if (menuObj.nodeName=="UL")
  1796.                 {
  1797.                     collapsedSections[x] = j;
  1798.                     x++;
  1799.                 }
  1800.             }
  1801.             i++;
  1802.         }
  1803.     }
  1804.     catch (e) {i = 0;}
  1805.     return collapsedSections;
  1806. }
  1807.  
  1808. function Calculate_offsetTop(e)
  1809. {
  1810.     if(e.tagName != 'DIV')
  1811.         return e.offsetTop + Calculate_offsetTop(e.offsetParent);
  1812.     else
  1813.         return e.offsetTop;
  1814. }
  1815. function HideMe(elemId, firstElem)
  1816. {
  1817.     var thisObj = document.getElementById(elemId);
  1818.  
  1819.     if(firstElem==true) {
  1820.         if(event.shiftKey==true) {
  1821.             thisObj.style.visibility = "hidden";
  1822.         }
  1823.     }
  1824.     else {
  1825.         if(!blockHideMe) {
  1826.         thisObj.style.visibility = "hidden";
  1827.         }
  1828.     }
  1829.         blockHideMe=false;
  1830. }
  1831.  
  1832. function Hide_LangFilter()
  1833. {
  1834.     var divElements = document.all.tags("div");
  1835.     for(i = 0; i < divElements.length; ++i)
  1836.     {
  1837.         if(divElements[i].id == "syntaxSection")
  1838.         {
  1839.             return;
  1840.         }
  1841.     }
  1842.     var spanElements = document.all.tags("span");
  1843.     var i;
  1844.     for(i = 0; i < spanElements.length; ++i)
  1845.     {
  1846.         if(spanElements[i].id == "languageFilterToolTip")
  1847.         {
  1848.             spanElements[i].style.display = "none";
  1849.             return;
  1850.         }
  1851.     }
  1852. }
  1853.  
  1854. // ****************************************************************************
  1855. // *                      Reftips (parameter popups)                          *
  1856. // ****************************************************************************
  1857. function initReftips(){
  1858.     var DLs = document.all.tags("DL");
  1859.     var PREs = document.all.tags("SPAN");
  1860.     if (DLs && PREs) {
  1861.         var iDL = 0;
  1862.         var iPRE = 0;
  1863.         var iSyntax = -1;
  1864.         for (var iPRE = 0; iPRE < PREs.length; iPRE++) {
  1865.             if (PREs[iPRE].className == "parameter") {
  1866.                 while (iDL < DLs.length && DLs[iDL].sourceIndex < PREs[iPRE].sourceIndex)
  1867.                     iDL++;            
  1868.                 if (iDL < DLs.length) {
  1869.                     initSyntax(PREs[iPRE], DLs[iDL]);
  1870.                     iSyntax = iPRE;
  1871.                 }
  1872.                 else
  1873.                     break;
  1874.             }
  1875.         }
  1876.  
  1877.         if (iSyntax >= 0) {
  1878.             var last = PREs[iSyntax];
  1879.             if (last.parentElement.tagName == "DIV") last = last.parentElement;                        last.insertAdjacentHTML('afterEnd','<DIV ID=reftip CLASS=reftip STYLE="position:absolute;visibility:hidden;overflow:visible;"></DIV>');
  1880.         }
  1881.     }
  1882. }
  1883.  
  1884. function initSyntax(pre, dl){
  1885.     var strSyn = pre.outerHTML;
  1886.     var ichStart = strSyn.indexOf('>', 0) + 1;
  1887.     var terms = dl.children.tags("DT");
  1888.     if (terms) {
  1889.         for (var iTerm = 0; iTerm < terms.length; iTerm++) {
  1890.             if (terms[iTerm].innerHTML.indexOf("<!--join-->")!=-1){
  1891.                 var word = terms[iTerm].innerText.replace(/\s$/, "");
  1892.                 var ichMatch = findTerm(strSyn, ichStart, word);
  1893.                 if (ichMatch < 1){
  1894.                     word = word.replace(/\s/, " ")
  1895.                     ichMatch = findTerm(strSyn, ichStart, word);
  1896.                 }
  1897.                 while (ichMatch > 0) {
  1898.                     var strTag = '<A HREF="" ONCLICK="showTip1(this)" CLASS="synParam">' + word + '</A>';
  1899.  
  1900.                     strSyn =
  1901.                         strSyn.slice(0, ichMatch) +
  1902.                         strTag +
  1903.                         strSyn.slice(ichMatch + word.length);
  1904.                     ichMatch = findTerm(strSyn, ichMatch + strTag.length, word);
  1905.                 }
  1906.                 
  1907.             }
  1908.         }
  1909.         for (var iTerm = 0; iTerm < terms.length; iTerm++) {
  1910.             if (terms[iTerm].innerHTML.indexOf("<!--join-->")==-1){
  1911.             var words = terms[iTerm].innerText.replace(/\[.+\]/g, " ").replace(/,/g, " ").split(" ");
  1912.                 var htm = terms[iTerm].innerHTML;
  1913.                 for (var iWord = 0; iWord < words.length; iWord++) {
  1914.                     var word = words[iWord];
  1915.  
  1916.                     if (word.length > 0 && htm.indexOf(word, 0) < 0)
  1917.                         word = word.replace(/:.+/, "");
  1918.  
  1919.                     if (word.length > 0) {
  1920.                         var ichMatch = findTerm(strSyn, ichStart, word);
  1921.                         while (ichMatch > 0) {
  1922.                             if (!isLinkText(strSyn.substring(ichMatch))){
  1923.                                 var strTag = '<A HREF="" ONCLICK="showTip1(this)" CLASS="synParam">' + word + '</A>';
  1924.                                 
  1925.                                 strSyn =
  1926.                                     strSyn.slice(0, ichMatch) +
  1927.                                     strTag +
  1928.                                     strSyn.slice(ichMatch + word.length);
  1929.  
  1930.                                 ichMatch = findTerm(strSyn, ichMatch + strTag.length, word);
  1931.                             }
  1932.                             else ichMatch = findTerm(strSyn, ichMatch + word.length, word);
  1933.                         }
  1934.                     }
  1935.                 }
  1936.             }
  1937.         }
  1938.     }
  1939.  
  1940.     // Replace the syntax block with our modified version.
  1941.     pre.outerHTML = strSyn;
  1942. }
  1943.  
  1944. function findTerm(strSyn, ichPos, strTerm)
  1945. {
  1946.     var ichMatch = strSyn.indexOf(strTerm, ichPos);
  1947.     while (ichMatch >= 0) {
  1948.         var prev = (ichMatch == 0) ? '\0' : strSyn.charAt(ichMatch - 1);
  1949.         var next = strSyn.charAt(ichMatch + strTerm.length);
  1950.         if (!isalnum(prev) && !isalnum(next) && !isInTag(strSyn, ichMatch)) {
  1951.             var ichComment = strSyn.indexOf("/*", ichPos);
  1952.             while (ichComment >= 0) {
  1953.                 if (ichComment > ichMatch) { 
  1954.                     ichComment = -1;
  1955.                     break; 
  1956.                 }
  1957.                 var ichEnd = strSyn.indexOf("*/", ichComment);
  1958.                 if (ichEnd < 0 || ichEnd > ichMatch)
  1959.                     break;
  1960.                 ichComment = strSyn.indexOf("/*", ichEnd);
  1961.             }
  1962.             if (ichComment < 0) {
  1963.                 ichComment = strSyn.indexOf("//", ichPos);
  1964.                 var newPos = 0;
  1965.                 if (ichComment >= 0) {
  1966.                     while (isInTag(strSyn, ichComment)) { //checks to see if the comment is in a tag (and thus part of a URL)
  1967.                         newPos = ichComment + 1;
  1968.                         ichComment = strSyn.indexOf("//", newPos);
  1969.                         if (ichComment < 0) 
  1970.                             break;
  1971.                     }
  1972.                     while (ichComment >= 0) {
  1973.                         if (ichComment > ichMatch) {
  1974.                             ichComment = -1;
  1975.                             break; 
  1976.                         }
  1977.                         var ichEnd = strSyn.indexOf("\n", ichComment);
  1978.                         if (ichEnd < 0 || ichEnd > ichMatch)
  1979.                             break;
  1980.                         ichComment = strSyn.indexOf("//", ichEnd);
  1981.                     }
  1982.                 }
  1983.             }
  1984.             if (ichComment < 0)
  1985.                 break;
  1986.         }
  1987.         ichMatch = strSyn.indexOf(strTerm, ichMatch + strTerm.length);
  1988.     }
  1989.     return ichMatch;
  1990. }
  1991. function isLinkText(strHtml){
  1992.     return strHtml.indexOf("<")==strHtml.toLowerCase().indexOf("<\/a>");
  1993. }
  1994.  
  1995. function isInTag(strHtml, ichPos)
  1996. {
  1997.     return strHtml.lastIndexOf('<', ichPos) >
  1998.         strHtml.lastIndexOf('>', ichPos);
  1999. }
  2000.  
  2001. function isalnum(ch){
  2002.     return ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || (ch == '_') || (ch == '-'));
  2003. }
  2004.  
  2005. function showTip1(link){
  2006.     bodyOnClick();
  2007.     var tip = document.all.reftip;
  2008.     if (!tip || !link)
  2009.         return;
  2010.  
  2011.     window.event.returnValue = false;
  2012.     window.event.cancelBubble = true;
  2013.  
  2014.     // Hide the tip if necessary and initialize its size.
  2015.     tip.style.visibility = "hidden";
  2016.     tip.style.pixelWidth = 260;
  2017.     tip.style.pixelHeight = 24;
  2018.  
  2019.     // Find the link target.
  2020.     var term = null;
  2021.     var def = null;
  2022.     var DLs = document.all.tags("DL");
  2023.  
  2024.     for (var iDL = 0; iDL < DLs.length; iDL++) {
  2025.         if (DLs[iDL].sourceIndex > link.sourceIndex) {
  2026.             var dl = DLs[iDL];
  2027.             var iMax = dl.children.length - 1;
  2028.             for (var iElem = 0; iElem < iMax; iElem++) {
  2029.                 var dt = dl.children[iElem];
  2030.                 if (dt.tagName == "DT" && dt.style.display != "none") {
  2031.                     if (findTerm(dt.innerText, 0, link.innerText) >= 0) {
  2032.                         var dd = dl.children[iElem + 1];
  2033.                         if (dd.tagName == "DD") {
  2034.                             term = dt;
  2035.                             def = dd;
  2036.                         }
  2037.                         break;
  2038.                     }
  2039.                 }
  2040.             }
  2041.             break;
  2042.         }
  2043.     }
  2044.  
  2045.     if (def) {
  2046.         window.linkElement = link;
  2047.         window.linkTarget = term;
  2048.         tip.innerHTML = '<DL><DT>' + term.innerHTML + '</DT><DD>' + def.innerHTML + '</DD></DL>';
  2049.         window.setTimeout("moveTip()", 0);
  2050.     }
  2051. }
  2052.  
  2053. function moveTip(){
  2054.     var tip = document.all.reftip;
  2055.     var link = window.linkElement;
  2056.     if (!tip || !link)
  2057.         return; //error
  2058.  
  2059.         var oBody = window.document.all["mainSection"];
  2060.  
  2061.         iOffsetY = oBody.scrollTop + oBody.offsetHeight/2;
  2062.     iOffsetX = 50;
  2063.  
  2064.     tip.style.pixelLeft = iOffsetX;
  2065.     tip.style.pixelTop = iOffsetY;
  2066.     tip.style.visibility = "visible";
  2067. }
  2068.  
  2069. function hideTip1(){
  2070.     if (window.linkElement) {
  2071.         window.linkElement.style.background = "";
  2072.         window.linkElement = null;
  2073.     }
  2074.  
  2075.     var tip = document.all.reftip;
  2076.     if (tip) {
  2077.         tip.style.visibility = "hidden";
  2078.         tip.innerHTML = "";
  2079.     }
  2080. }
  2081.  
  2082. function beginsWith(s1, s2){
  2083.     // Does s1 begin with s2?
  2084.     return s1.substring(0, s2.length) == s2;
  2085. }
  2086.  
  2087.  
  2088. function bodyOnClick(){
  2089.     var elem = window.event.srcElement;
  2090.     for (; elem; elem = elem.parentElement) {
  2091.         if (elem.id == "reftip" || elem.id == "PopUp" || elem.id == "In_Popup" )
  2092.         {
  2093.         elem.style.visibility = "hidden";
  2094.         if (elem.id == "reftip")
  2095.             return;
  2096.         }
  2097.     }        
  2098.     hideTip1();
  2099. }
  2100.  
  2101. /*************************************************************
  2102. // End WSS Specific Change.
  2103. *************************************************************/
  2104.