Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1698 lines
39 KiB

window.onload=LoadPage;
window.onunload=Window_Unload;
//window.onresize=ResizeWindow;
window.onbeforeprint = set_to_print;
window.onafterprint = reset_form;
var languageFilter;
var data;
var tf;
var mf;
var lang = 'CSharp';
var vbDeclaration;
var vbUsage;
var csLang;
var cLang;
var jsharpLang;
var jsLang;
var xamlLang;
var scrollPos = 0;
var inheritedMembers;
var protectedMembers;
var netcfMembersOnly;
var netXnaMembersOnly;
// Initialize array of section states
var sectionStates = new Array();
var sectionStatesInitialized = false;
//Hide sample source in select element
function HideSelect()
{
var selectTags = document.getElementsByTagName("SELECT");
var spanEles = document.getElementsByTagName("span");
var i = 10;
var m;
if (selectTags.length != null || selectTags.length >0)
{
for (n=0; n<selectTags.length; n++)
{
var lan = selectTags(n).getAttribute("id").substr("10");
//hide the first select that is on
switch (lan.toLowerCase())
{
case "visualbasic":
//alert(lan);
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "VisualBasic" && spanEles[m].style.display != "none" && n <i)
i = n;
}
break;
case "visualbasicdeclaration":
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "VisualBasicDeclaration" && spanEles[m].style.display != "none" && n < i)
i = n;
}
break;
case "visualbasicusage":
//alert(lan);
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "VisualBasicUsage" && spanEles[m].style.display != "none" && n <i)
i = n;
}
break;
case "csharp":
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "CSharp" && spanEles[m].style.display != "none" && n < i)
i = n;
}
break;
case "managedcplusplus":
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "ManagedCPlusPlus" && spanEles[m].style.display != "none" && n < i)
i = n;
}
break;
case "jsharp":
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "JSharp" && spanEles[m].style.display != "none" && n < i)
i = n;
}
break;
case "jscript":
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "JScript" && spanEles[m].style.display != "none" && n < i)
i = n;
}
break;
case "xaml":
//alert(lan);
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "XAML" && spanEles[m].style.display != "none" && n <i)
i = n;
}
break;
case "javascript":
//alert(lan);
for (m=0; m<spanEles.length; m++)
{
if (spanEles[m].getAttribute("codeLanguage") == "JavaScript" && spanEles[m].style.display != "none" && n <i)
i = n;
}
break;
}
}
if (i != 10)
selectTags(i).style.visibility = "hidden";
}
else{ alert("Not found!");}
}
function UnHideSelect()
{
var selectTags = document.getElementsByTagName("SELECT");
var n;
//un-hide all the select sections
if (selectTags.length != null || selectTags.length >0)
{
for (n=0; n<selectTags.length; n++)
selectTags(n).style.visibility = "visible";
}
}
function InitSectionStates()
{
sectionStatesInitialized = true;
if (globals == null) globals = GetGlobals();
// SectionStates has the format:
//
// firstSectionId:state;secondSectionId:state;thirdSectionId:state; ... ;lastSectionId:state
//
// where state is either "e" (expanded) or "c" (collapsed)
// get the SectionStates from the previous topics
var states = Load("SectionStates");
var start = 0;
var end;
var section;
var state;
var allCollapsed = false;
// copy the previous section states to the sectionStates array for the current page
if (states != null && states != "")
{
allCollapsed = true;
while (start < states.length)
{
end = states.indexOf(":", start);
section = states.substring(start, end);
start = end + 1;
end = states.indexOf(";", start);
if (end == -1) end = states.length;
state = states.substring(start, end);
sectionStates[section] = state;
allCollapsed = allCollapsed && (state == "c");
start = end + 1;
}
}
// now set the state for any section ids in the current document that weren't in previous
var imgElements = document.getElementsByName("toggleSwitch");
var i;
for (i = 0; i < imgElements.length; ++i)
sectionStates[imgElements[i].id] = GetInitialSectionState(imgElements[i].id, allCollapsed);
}
function GetInitialSectionState(itemId, allCollapsed)
{
// if the global state is "allCollapsed", set all section states to collapsed
if (allCollapsed) return "c";
// generic <section> node ids begin with "sectionToggle", so the same id can refer to different sections in different topics
// we don't want to persist their state; set it to expanded
if (itemId.indexOf("sectionToggle", 0) == 0) return "e";
// the default state for new section ids is expanded
if (sectionStates[itemId] == null) return "e";
// otherwise, persist the passed in state
return sectionStates[itemId];
}
var noReentry = false;
function OnLoadImage(eventObj)
{
if (noReentry) return;
if (!sectionStatesInitialized)
InitSectionStates();
var elem;
if(document.all) elem = eventObj.srcElement;
else elem = eventObj.target;
if ((sectionStates[elem.id] == "e"))
ExpandSection(elem);
else if((sectionStates[elem.id] == "c"))
CollapseSection(elem);
}
/*
**********
********** Begin
**********
*/
function LoadPage()
{
// If not initialized, grab the DTE.Globals object
if (globals == null) globals = GetGlobals();
// show correct language
LoadLanguages();
LoadMembersOptions();
Set_up_checkboxes();
DisplayLanguages();
DisplayFilteredMembers();
ChangeMembersOptionsFilterLabel();
if (!sectionStatesInitialized)
InitSectionStates();
var imgElements = document.getElementsByName("toggleSwitch");
for (i = 0; i < imgElements.length; i++)
{
if ((sectionStates[imgElements[i].id] == "e"))
ExpandSection(imgElements[i]);
else
CollapseSection(imgElements[i]);
}
SetCollapseAll();
// ResizeWindow();
// split screen
var screen = new SplitScreen('header', 'mainSection');
// filtering dropdowns
if (document.getElementById('languageSpan') != null) {
var languageMenu = new Dropdown('languageFilterToolTip', 'languageSpan');
languageFilter = new Selector('languageSpan');
languageFilter.register(codeBlockHandler);
languageFilter.register(styleSheetHandler);
languageFilter.register(persistenceHandler);
languageFilter.register(languageHandler);
toggleLanguage('languageSpan', 'x-lang', 'CSharp');
toggleInlineStyle('cs');
}
if (document.getElementById('membersOptionsFilterToolTip') != null) {
var languageMenu = new Dropdown('membersOptionsFilterToolTip', 'membersOptionsSpan');
}
data = new DataStore('docs');
registerEventHandler(window, 'load', function() {if (languageFilter != null) languageFilter.select(data)});
// process tab behavior for syntax, snippets, type and member sections
tf = new TypeFilter();
mf = new MemberFilter();
setUpSyntax();
setUpSnippets();
setUpType();
setUpAllMembers();
var mainSection = document.getElementById("mainSection");
// vs70.js did this to allow up/down arrow scrolling, I think
try { mainSection.setActive(); } catch(e) { }
//set the scroll position
try{mainSection.scrollTop = scrollPos;}
catch(e){}
}
function Window_Unload()
{
SaveLanguages();
SaveMembersOptions();
SaveSections();
}
/*
function ResizeWindow()
{
if (document.body.clientWidth==0) return;
var header = document.all.item("header");
var mainSection = document.all.item("mainSection");
if (mainSection == null) return;
document.body.scroll = "no"
mainSection.style.overflow= "auto";
header.style.width= document.body.offsetWidth - 2;
//mainSection.style.paddingRight = "20px"; // Width issue code
mainSection.style.width= document.body.offsetWidth - 2;
mainSection.style.top=0;
if (document.body.offsetHeight > header.offsetHeight + 10)
mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 2);
else
mainSection.style.height=0;
try
{
mainSection.setActive();
}
catch(e)
{
}
}
*/
function set_to_print()
{
//breaks out of divs to print
var i;
if (window.text)document.all.text.style.height = "auto";
for (i=0; i < document.all.length; i++)
{
if (document.all[i].tagName == "body")
{
document.all[i].scroll = "yes";
}
if (document.all[i].id == "header")
{
document.all[i].style.margin = "0px 0px 0px 0px";
document.all[i].style.width = "100%";
}
if (document.all[i].id == "mainSection")
{
document.all[i].style.overflow = "visible";
document.all[i].style.top = "5px";
document.all[i].style.width = "100%";
document.all[i].style.padding = "0px 10px 0px 30px";
}
}
}
function reset_form()
{
//returns to the div nonscrolling region after print
document.location.reload();
}
function Set_up_checkboxes()
{
var checkbox;
checkbox = document.getElementById("vbDeclarationCheckbox");
if(checkbox != null)
{
if(vbDeclaration == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("vbUsageCheckbox");
if(checkbox != null)
{
if(vbUsage == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("csCheckbox");
if(checkbox != null)
{
if(csLang == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("cCheckbox");
if(checkbox != null)
{
if(cLang == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("jsharpCheckbox");
if(checkbox != null)
{
if(jsharpLang == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("jsCheckbox");
if(checkbox != null)
{
if(jsLang == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("xamlCheckbox");
if(checkbox != null)
{
if(xamlLang == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("inheritedCheckbox");
if(checkbox != null)
{
if(inheritedMembers == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("protectedCheckbox");
if(checkbox != null)
{
if(protectedMembers == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("netcfCheckbox");
if(checkbox != null)
{
if(netcfMembersOnly == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
checkbox = document.getElementById("netXnaCheckbox");
if(checkbox != null)
{
if(netXnaMembersOnly == "on")
checkbox.checked = true;
else
checkbox.checked = false;
}
}
/*
**********
********** End
**********
*/
/*
**********
********** Begin Language Filtering
**********
*/
function SetLanguage(key)
{
var i = 0;
if(vbDeclaration == "on")
i++;
if(vbUsage == "on")
i++;
if(csLang == "on")
i++;
if(cLang == "on")
i++;
if(jsharpLang == "on")
i++;
if(jsLang == "on")
i++;
if(xamlLang == "on")
i++;
if(key.id == "vbDeclarationCheckbox")
{
if(vbDeclaration == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
vbDeclaration = "off";
}
else
vbDeclaration = "on";
}
if(key.id == "vbUsageCheckbox")
{
if(vbUsage == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
vbUsage = "off";
}
else
vbUsage = "on";
}
if(key.id == "csCheckbox")
{
if(csLang == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
csLang = "off";
}
else
csLang = "on";
}
if(key.id == "cCheckbox")
{
if(cLang == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
cLang = "off";
}
else
cLang = "on";
}
if(key.id == "jsharpCheckbox")
{
if(jsharpLang == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
jsharpLang = "off";
}
else
jsharpLang = "on";
}
if(key.id == "jsCheckbox")
{
if(jsLang == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
jsLang = "off";
}
else
jsLang = "on";
}
if(key.id == "xamlCheckbox")
{
if(xamlLang == "on")
{
if(i == 1)
{
key.checked = true;
return;
}
xamlLang = "off";
}
else
xamlLang = "on";
}
DisplayLanguages();
}
function DisplayLanguages()
{
var spanElements = document.getElementsByTagName("span");
var x = 0;
if(vbDeclaration == "on")
x++;
if(vbUsage == "on")
x++;
if(csLang == "on")
x++;
if(cLang == "on")
x++;
if(jsharpLang == "on")
x++;
if(jsLang == "on")
x++;
if(xamlLang == "on")
x++;
var i;
for(i = 0; i < spanElements.length; ++i)
{
if(spanElements[i].getAttribute("codeLanguage") != null)
{
if(spanElements[i].getAttribute("codeLanguage") == "VisualBasic")
{
if(vbDeclaration == "on" || vbUsage == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "VisualBasicDeclaration")
{
if(vbDeclaration == "on")
spanElements[i].style.display = "";
else{
spanElements[i].style.display = "none";
}
}
if(spanElements[i].getAttribute("codeLanguage") == "VisualBasicUsage")
{
if(vbUsage == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "CSharp")
{
if(csLang == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "ManagedCPlusPlus")
{
if(cLang == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "JSharp")
{
if(jsharpLang == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "JScript")
{
if(jsLang == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "XAML")
{
if(xamlLang == "on")
spanElements[i].style.display = "";
else
spanElements[i].style.display = "none";
}
if(spanElements[i].getAttribute("codeLanguage") == "NotVisualBasicUsage")
{
if((x == 1) && (vbUsage == "on"))
{
spanElements[i].style.display = "none";
}
else
{
spanElements[i].style.display = "";
}
}
}
}
ChangeLanguageFilterLabel();
}
function ChangeLanguageFilterLabel()
{
var i = 0;
if(vbDeclaration == "on")
i++;
if(vbUsage == "on")
i++;
if(csLang == "on")
i++;
if(cLang == "on")
i++;
if(jsharpLang == "on")
i++;
if(jsLang == "on")
i++;
if(xamlLang == "on")
i++;
var labelElement;
labelElement = document.getElementById("showAllLabel");
if(labelElement == null)
return;
labelElement.style.display = "none";
labelElement = document.getElementById("multipleLabel");
labelElement.style.display = "none";
labelElement = document.getElementById("vbLabel");
labelElement.style.display = "none";
labelElement = document.getElementById("csLabel");
labelElement.style.display = "none";
labelElement = document.getElementById("cLabel");
labelElement.style.display = "none";
labelElement = document.getElementById("jsharpLabel");
labelElement.style.display = "none";
labelElement = document.getElementById("jsLabel");
labelElement.style.display = "none";
labelElement = document.getElementById("xamlLabel");
labelElement.style.display = "none";
if(i == 7)
{
labelElement = document.getElementById("showAllLabel");
labelElement.style.display = "inline";
}
else if ((i > 1) && (i < 7))
{
if((i == 2) && ((vbDeclaration == "on") && (vbUsage == "on")))
{
labelElement = document.getElementById("vbLabel");
labelElement.style.display = "inline";
}
else
{
labelElement = document.getElementById("multipleLabel");
labelElement.style.display = "inline";
}
}
else if (i == 1)
{
if(vbDeclaration == "on" || vbUsage == "on")
{
labelElement = document.getElementById("vbLabel");
labelElement.style.display = "inline";
}
if(csLang == "on")
{
labelElement = document.getElementById("csLabel");
labelElement.style.display = "inline";
}
if(cLang == "on")
{
labelElement = document.getElementById("cLabel");
labelElement.style.display = "inline";
}
if(jsharpLang == "on")
{
labelElement = document.getElementById("jsharpLabel");
labelElement.style.display = "inline";
}
if(jsLang == "on")
{
labelElement = document.getElementById("jsLabel");
labelElement.style.display = "inline";
}
if(xamlLang == "on")
{
labelElement = document.getElementById("xamlLabel");
labelElement.style.display = "inline";
}
}
}
function LoadLanguages()
{
var value;
value = Load("vbDeclaration");
if(value == null)
vbDeclaration = "on";
else
vbDeclaration = value;
value = Load("vbUsage");
if(value == null)
vbUsage = "on";
else
vbUsage = value;
value = Load("csLang");
if(value == null)
csLang = "on";
else
csLang = value;
value = Load("cLang");
if(value == null)
cLang = "on";
else
cLang = value;
value = Load("jsharpLang");
if(value == null)
jsharpLang = "on";
else
jsharpLang = value;
value = Load("jsLang");
if(value == null)
jsLang = "on";
else
jsLang = value;
value = Load("xamlLang");
if(value == null)
xamlLang = "on";
else
xamlLang = value;
}
function SaveLanguages()
{
Save("vbDeclaration", vbDeclaration);
Save("vbUsage", vbUsage);
Save("csLang", csLang);
Save("cLang", cLang);
Save("jsharpLang", jsharpLang);
Save("jsLang", jsLang);
Save("xamlLang", xamlLang);
}
/*
**********
********** End Language Filtering
**********
*/
/*
**********
********** Begin Members Options Filtering
**********
*/
function SetMembersOptions(key)
{
if(key.id == "inheritedCheckbox")
{
if(key.checked == true)
inheritedMembers = "on";
else
inheritedMembers = "off";
}
if(key.id == "protectedCheckbox")
{
if(key.checked == true)
protectedMembers = "on";
else
protectedMembers = "off";
}
if(key.id == "netcfCheckbox")
{
if(key.checked == true)
netcfMembersOnly = "on";
else
netcfMembersOnly = "off";
}
if(key.id == "netXnaCheckbox")
{
if(key.checked == true)
netXnaMembersOnly = "on";
else
netXnaMembersOnly = "off";
}
DisplayFilteredMembers();
ChangeMembersOptionsFilterLabel();
}
function DisplayFilteredMembers()
{
var iAllMembers = document.getElementsByTagName("tr");
var i;
for(i = 0; i < iAllMembers.length; ++i)
{
if (((iAllMembers[i].getAttribute("protected") == "true") && (protectedMembers == "off")) ||
((iAllMembers[i].notSupportedOnXna == "true") && (netXnaMembersOnly == "on")) ||
((iAllMembers[i].getAttribute("name") == "inheritedMember") && (inheritedMembers == "off")) ||
((iAllMembers[i].getAttribute("notSupportedOn") == "netcf") && (netcfMembersOnly == "on")))
iAllMembers[i].style.display = "none";
else
iAllMembers[i].style.display = "";
}
}
function ChangeMembersOptionsFilterLabel()
{
var showAllMembersLabelElement = document.getElementById("showAllMembersLabel");
var filteredMembersLabelElement = document.getElementById("filteredMembersLabel");
if(showAllMembersLabelElement == null || filteredMembersLabelElement == null)
return;
if ((inheritedMembers=="off") || (protectedMembers=="off") || (netXnaMembersOnly == "on") || (netcfMembersOnly=="on"))
{
filteredMembersLabelElement.style.display = "inline";
showAllMembersLabelElement.style.display = "none";
}
else
{
filteredMembersLabelElement.style.display = "none";
showAllMembersLabelElement.style.display = "inline";
}
}
function LoadMembersOptions()
{
var value;
value = Load("inheritedMembers");
if(value == null)
inheritedMembers = "on";
else
inheritedMembers = value;
value = Load("protectedMembers");
if(value == null)
protectedMembers = "on";
else
protectedMembers = value;
value = Load("netcfMembersOnly");
if(value == null)
netcfMembersOnly = "off";
else
netcfMembersOnly = value;
value = Load("netXnaMembersOnly");
if(value == null)
netXnaMembersOnly = "off";
else
netXnaMembersOnly = value;
}
function SaveMembersOptions()
{
Save("inheritedMembers", inheritedMembers);
Save("protectedMembers", protectedMembers);
Save("netcfMembersOnly", netcfMembersOnly);
Save("netXnaMembersOnly", netXnaMembersOnly);
}
/*
**********
********** End Members Options Filtering
**********
*/
/*
**********
********** Begin Expand/Collapse
**********
*/
// expand or collapse a section
function ExpandCollapse(imageItem)
{
if (sectionStates[imageItem.id] == "e")
CollapseSection(imageItem);
else
ExpandSection(imageItem);
SetCollapseAll();
}
// expand or collapse all sections
function ExpandCollapseAll(imageItem)
{
var collapseAllImage = document.getElementById("collapseAllImage");
var expandAllImage = document.getElementById("expandAllImage");
if (imageItem == null || collapseAllImage == null || expandAllImage == null) return;
noReentry = true; // Prevent entry to OnLoadImage
var imgElements = document.getElementsByName("toggleSwitch");
var i;
var collapseAll = (imageItem.src == collapseAllImage.src);
if (collapseAll)
{
imageItem.src = expandAllImage.src;
imageItem.alt = expandAllImage.alt;
for (i = 0; i < imgElements.length; ++i)
{
CollapseSection(imgElements[i]);
}
}
else
{
imageItem.src = collapseAllImage.src;
imageItem.alt = collapseAllImage.alt;
for (i = 0; i < imgElements.length; ++i)
{
ExpandSection(imgElements[i]);
}
}
SetAllSectionStates(collapseAll);
SetToggleAllLabel(collapseAll);
noReentry = false;
}
function ExpandCollapse_CheckKey(imageItem, eventObj)
{
if(eventObj.keyCode == 13)
ExpandCollapse(imageItem);
}
function ExpandCollapseAll_CheckKey(imageItem, eventObj)
{
if(eventObj.keyCode == 13)
ExpandCollapseAll(imageItem);
}
function SetAllSectionStates(collapsed)
{
for (var sectionId in sectionStates)
sectionStates[sectionId] = (collapsed) ? "c" : "e";
}
function ExpandSection(imageItem)
{
noReentry = true; // Prevent re-entry to OnLoadImage
try
{
var collapseImage = document.getElementById("collapseImage");
imageItem.src = collapseImage.src;
imageItem.alt = collapseImage.alt;
imageItem.parentNode.parentNode.nextSibling.style.display = "";
sectionStates[imageItem.id] = "e";
}
catch (e)
{
}
noReentry = false;
}
function CollapseSection(imageItem)
{
noReentry = true; // Prevent re-entry to OnLoadImage
var expandImage = document.getElementById("expandImage");
imageItem.src = expandImage.src;
imageItem.alt = expandImage.alt;
imageItem.parentNode.parentNode.nextSibling.style.display = "none";
sectionStates[imageItem.id] = "c";
noReentry = false;
}
function AllCollapsed()
{
var imgElements = document.getElementsByName("toggleSwitch");
var allCollapsed = true;
var i;
for (i = 0; i < imgElements.length; i++) allCollapsed = allCollapsed && (sectionStates[imgElements[i].id] == "c");
return allCollapsed;
}
function SetCollapseAll()
{
var imageElement = document.getElementById("toggleAllImage");
if (imageElement == null) return;
var allCollapsed = AllCollapsed();
if (allCollapsed)
{
var expandAllImage = document.getElementById("expandAllImage");
if (expandAllImage == null) return;
imageElement.src = expandAllImage.src;
imageElement.alt = expandAllImage.alt;
}
else
{
var collapseAllImage = document.getElementById("collapseAllImage");
if (collapseAllImage == null) return;
imageElement.src = collapseAllImage.src;
imageElement.alt = collapseAllImage.alt;
}
SetToggleAllLabel(allCollapsed);
}
function SetToggleAllLabel(allCollapsed)
{
var collapseLabelElement = document.getElementById("collapseAllLabel");
var expandLabelElement = document.getElementById("expandAllLabel");
if (collapseLabelElement == null || expandLabelElement == null) return;
if (allCollapsed)
{
collapseLabelElement.style.display = "none";
expandLabelElement.style.display = "inline";
}
else
{
collapseLabelElement.style.display = "inline";
expandLabelElement.style.display = "none";
}
}
function SaveSections()
{
try
{
var states = "";
for (var sectionId in sectionStates) states += sectionId + ":" + sectionStates[sectionId] + ";";
Save("SectionStates", states.substring(0, states.length - 1));
}
catch (e)
{
}
}
function OpenSection(imageItem)
{
if (sectionStates[imageItem.id] == "c") ExpandCollapse(imageItem);
}
/*
**********
********** End Expand/Collapse
**********
*/
/*
**********
********** Begin Copy Code
**********
*/
function CopyCode(key)
{
var trElements = document.getElementsByTagName("tr");
var i;
for(i = 0; i < trElements.length; ++i)
{
if(key.parentNode.parentNode.parentNode == trElements[i].parentNode)
{
if (window.clipboardData)
{
// the IE-manner
window.clipboardData.setData("Text", trElements[i].innerText);
}
else if (window.netscape)
{
// Gives unrestricted access to browser APIs using XPConnect
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e)
{
alert("Universal Connect was refused, cannot copy to " +
"clipboard. Go to about:config and set " +
"signed.applets.codebase_principal_support to true to " +
"enable clipboard support.");
return;
}
// Creates an instance of nsIClipboard
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
// Creates an instance of nsITransferable
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
// register the data flavor
trans.addDataFlavor('text/unicode');
// Create object to hold the data
var str = new Object();
// Creates an instance of nsISupportsString
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
//Assigns the data to be copied
var copytext = trElements[i].textContent;
str.data = copytext;
// Add data objects to transferable
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip) return false;
// Transfer the data to clipboard
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
}
}
function ChangeCopyCodeIcon(key)
{
var i;
var imageElements = document.getElementsByName("ccImage")
for(i=0; i<imageElements.length; ++i)
{
if(imageElements[i].parentNode == key)
{
if(imageElements[i].src == copyImage.src)
{
imageElements[i].src = copyHoverImage.src;
imageElements[i].alt = copyHoverImage.alt;
key.className = 'copyCodeOnHover';
}
else
{
imageElements[i].src = copyImage.src;
imageElements[i].alt = copyImage.alt;
key.className = 'copyCode';
}
}
}
}
function CopyCode_CheckKey(key, eventObj)
{
if(eventObj.keyCode == 13)
CopyCode(key);
}
/*
**********
********** End Copy Code
**********
*/
/*
**********
********** Begin Maintain Scroll Position
**********
*/
function loadAll(){
try
{
scrollPos = allHistory.getAttribute("Scroll");
}
catch(e){}
}
function saveAll(){
try
{
allHistory.setAttribute("Scroll", mainSection.scrollTop);
}
catch(e){}
}
/*
**********
********** End Maintain Scroll Position
**********
*/
/*
**********
********** Begin Send Mail
**********
*/
function formatMailToLink(anchor)
{
var release = "Release: " + anchor.doc_Release;
var topicId = "Topic ID: " + anchor.doc_TopicID;
var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
var url = "URL: " + document.URL;
var browser = "Browser: " + window.navigator.userAgent;
var crlf = "%0d%0a";
var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
anchor.href = anchor.href + "&body=" + body;
}
/*
**********
********** End Send Mail
**********
*/
/*
**********
********** Begin Persistence
**********
*/
var globals;
function GetGlobals()
{
var tmp;
// Try to get VS implementation
try { tmp = window.external.Globals; }
catch (e) { tmp = null; }
// Try to get DExplore implementation
try { if (tmp == null) tmp = window.external.GetObject("DTE", "").Globals; }
catch (e) { tmp = null; }
return tmp;
}
function Load(key)
{
try
{
return globals.VariableExists(key) ? globals.VariableValue(key) : null;
}
catch (e)
{
return null;
}
}
function Save(key, value)
{
try
{
globals.VariableValue(key) = value;
globals.VariablePersists(key) = true;
}
catch (e)
{
}
}
/*
**********
********** End Persistence
**********
*/
/* This is the part for Glossary popups */
// The method is called when the user positions the mouse cursor over a glossary term in a document.
// Current implementation assumes the existence of an associative array (g_glossary).
// The keys of the array correspond to the argument passed to this function.
var bGlossary=true;
var oDialog;
var oTimeout="";
var oTimein="";
var iTimein=.5;
var iTimeout=30;
var oLastNode;
var oNode;
var bInit=false;
var aTerms=new Array();
// Called from mouseover and when the contextmenu behavior fires oncontextopen.
function clearDef(eventObj){
if(eventObj){
var elem;
if(document.all) elem = eventObj.toElement;
else elem = eventObj.relatedTarget;
if(elem!=null || elem!="undefined"){
if(typeof(oTimein)=="number"){
window.clearTimeout(oTimein);
}
if(oDialog.dlg_status==true){
hideDef();
}
}
}
}
function hideDef(eventObj){
window.clearTimeout(oTimeout);
oTimeout="";
oDialog.style.display="none";
oDialog.dlg_status=false;
}
function showDef(oSource){
if(bInit==false){
glossaryInit();
bInit=true;
}
if(bGlossary==true){
if(typeof(arguments[0])=="object"){
oNode=oSource;
}
else{
if(document.all) oNode = eventObj.srcElement;
else oNode = eventObj.target;
}
var bStatus=oDialog.dlg_status; // BUGBUG: oDialog is null.
if((oLastNode!=oNode)||(bStatus==false)){
if((typeof(oTimein)=="number")&& eventObj){
var elem;
if(document.all) elem = eventObj.fromElement;
else elem = eventObj.relatedTarget;
if( elem != null || elem != "undefined")
window.clearTimeout(oTimein);
}
oTimein=window.setTimeout("openDialog(oNode)",iTimein*1000);
}
}
}
function glossaryInit(){
oDialog=fnCreateDialog(150,50);
}
function navigateTerm(eventObj){
var oNode;
if(document.all) oNode = eventObj.srcElement;
else oNode = eventObj.target;
var iTermID=oNode.termID;
if(oNode!=aTerms[iTermID]){
var iAbsTop=getAbsoluteTop(aTerms[iTermID]);
if(iAbsTop<document.body.scrollTop){
window.scrollTo(document.body.scrollLeft,getAbsoluteTop(aTerms[iTermID]));
}
openDialog(aTerms[iTermID]);
}
}
function disableGlossary(eventObj){
if(bGlossary==true){
if(document.all) eventObj.srcElement.innerText="Enable Automatic Glossary";
else eventObj.target.innerText="Enable Automatic Glossary";
bGlossary=false;
hideDef();
}
else{
if(document.all) eventObj.srcElement.innerText="Disable Automatic Glossary";
else eventObj.target.innerText="Disable Automatic Glossary";
bGlossary=true;
}
}
function openGlossary(){
}
function fnSetMenus(eventObj){
var oNode;
if(document.all) oNode = eventObj.srcElement;
else oNode = eventObj.target;
var oMenu=oNode.createMenu("SPAN","G_RID");
var oSubItem1=oNode.createMenuItem("Glossary",fnStub,oMenu,true);
document.body.createMenuItem("Open External Glossary",openGlossary,oSubItem1.subMenu);
document.body.createMenuItem("Disable Automatic Glossary",disableGlossary,oSubItem1.subMenu);
for(var i=0;i<aTerms.length;i++){
var oItem=document.body.createMenuItem(aTerms[i].innerText,navigateTerm,oMenu);
oItem.termID=i;
}
}
// This is a bogus stub. It should be sniffed out rather than added in.
function fnStub(){
}
function fnAttachMenus(aTips){
// This walk is only necessary for the context menu.
var aTips=document.getElementsByTagName("SPAN");
for(var i=0;i<aTips.length;i++){
var oNode=aTips[i];
if(oNode.getAttribute("G_RID")){
var sTerm=oNode.getAttribute("G_RID");
if(typeof(g_glossary[sTerm])=="string"){
// Removed client-side scripting to add events. This entire process should be singled out for IE 5 and later .. and, its only for the context menu.
aTerms[aTerms.length]=oNode;
}
}
}
if(oBD.majorVer>=5){
document.body.addBehavior(gsContextMenuPath);
document.body.onbehaviorready="fnSetMenus()";
document.body.oncontextopen="clearDef()";
}
}
// Called by showDef. The showDef function sniffs for initialization.
function openDialog(oNode,x,y){
var bStatus=oDialog.dlg_status; // BUGBUG: This code assumes that oDialog has been initialized
if(bStatus==false){
oDialog.dlg_status=true;
oDialog.style.display="block";
}
else{
if(typeof(oTimeout)=="number"){
window.clearTimeout(oTimeout);
}
}
var sTerm=oNode.getAttribute("G_RID");
var oDef=oNode.children(0);
var sDef=oDef.text;
sDef=sDef.substr(4,sDef.length-7); //Strips the html comment markers from the definition.
oDialog.innerHTML=sDef
//oDialog.innerHTML=g_glossary[sTerm];
var iScrollLeft=document.body.scrollLeft;
var iScrollTop=document.body.scrollTop;
var iOffsetLeft=getAbsoluteLeft(oNode)// - iScrollLeft;
var iOffsetWidth=oNode.offsetWidth;
var oParent=oNode.parentNode;
var iOffsetParentLeft=getAbsoluteLeft(oParent);
var iOffsetTop=getAbsoluteTop(oNode); //- iScrollTop;
var iOffsetDialogWidth=oDialog.offsetWidth;
if((iOffsetLeft + iOffsetWidth) > (iOffsetParentLeft + oParent.offsetWidth)){
iOffsetLeft=iOffsetParentLeft;
if(iOffsetLeft - iOffsetDialogWidth>0){
iOffsetTop+=oNode.offsetHeight;
}
}
var iLeft=0;
var iTop=0;
if((iOffsetLeft + iOffsetWidth - iScrollLeft + iOffsetDialogWidth) < document.body.offsetWidth ){
iLeft=iOffsetLeft + iOffsetWidth;
}
else{
if(iOffsetLeft - iOffsetDialogWidth>0){
iLeft=iOffsetLeft - iOffsetDialogWidth;
}
else{
iLeft=iOffsetParentLeft;
}
}
if(iOffsetTop - iScrollTop<oDialog.offsetHeight){
iTop=iOffsetTop + oNode.offsetHeight;
}
else{
iTop=iOffsetTop - oDialog.offsetHeight;
}
oDialog.style.top=iTop;
oDialog.style.left=iLeft;
oTimeout=window.setTimeout("hideDef()",iTimeout*1000);
}
function getAbsoluteTop(oNode){
var oCurrentNode=oNode;
var iTop=0;
while(oCurrentNode.tagName!="BODY"){
iTop+=oCurrentNode.offsetTop;
oCurrentNode=oCurrentNode.offsetParent;
}
return iTop;
}
function getAbsoluteLeft(oNode){
var oCurrentNode=oNode;
var iLeft=0;
while(oCurrentNode.tagName!="BODY"){
iLeft+=oCurrentNode.offsetLeft;
oCurrentNode=oCurrentNode.offsetParent;
}
return iLeft;
}
function fnCreateDialog(iWidth,iHeight){
document.body.insertAdjacentHTML("BeforeEnd","<DIV></DIV>");
oNewDialog=document.body.children(document.body.children.length-1);
oNewDialog.className="clsTooltip";
oNewDialog.style.width=iWidth;
oNewDialog.dlg_status=false;
return oNewDialog;
}
function sendfeedback(subject, id,alias){
var rExp = /\"/gi;
var url = location.href;
// Need to replace the double quotes with single quotes for the mailto to work.
var rExpSingleQuotes = /\'\'"/gi;
var title;
if(document.getElementsByTagName("TITLE")[0].innerText) title = document.getElementsByTagName("TITLE")[0].innerText.replace(rExp, "''")
else title = document.getElementsByTagName("TITLE")[0].textContent.replace(rExp, "''");
location.href = "mailto:" + alias + "?subject=" + subject + title + "&body=Topic%20ID:%20" + id + "%0d%0aURL:%20" + url + "%0d%0a%0d%0aComments:%20";
}
function setUpSyntax() {
var syntaxSection = document.getElementById('syntaxCodeBlocks');
if (syntaxSection == null) return;
processSection(syntaxSection, 'x-lang', lang, true, true, true, true);
}
function setUpSnippets() {
var divs = document.getElementsByTagName("DIV");
for (var i = 0; i < divs.length; i++)
{
var name = divs[i].getAttribute("name");
if (name == null || name != "snippetGroup") continue;
processSection(divs[i], 'x-lang', lang, true, true, true, true);
}
}
function setUpType() {
var typeSection = document.getElementById("typeSection");
if (typeSection == null) return;
processSection(typeSection, 'value', 'all', true, false, true, false);
}
function setUpAllMembers() {
var allMembersSection = document.getElementById("allMembersSection");
if (allMembersSection == null) return;
processSection(allMembersSection, 'value', 'all', true, false, true, false);
}
function processSection(section, attribute, value, toggleClassValue, toggleStyleValue, curvedToggleClassValue, registerValue) {
var nodes = section.childNodes;
var curvedTabId;
var tabId;
var blockId;
if (nodes.length != 2) return;
if (nodes[0].tagName == 'TABLE') {
var rows = nodes[0].getElementsByTagName('tr');
if (rows.length != 2) return;
curvedTabId = rows[0].getAttribute('id');
tabId = rows[1].getAttribute('id');
}
if(nodes[1].tagName == 'DIV') {
blockId = nodes[1].getAttribute('id');
}
if (toggleClassValue) toggleClass(tabId,attribute,value,'activeTab','tab');
if (toggleStyleValue) toggleStyle(blockId,attribute,value,'display','block','none');
if (curvedToggleClassValue) curvedToggleClass(curvedTabId, attribute, value);
if (languageFilter == null) return;
if (registerValue) languageFilter.registerTabbedArea(curvedTabId, tabId, blockId);
}