window.onload=LoadPage; window.onunload=Window_Unload; //window.onresize=ResizeWindow; window.onbeforeprint = set_to_print; window.onafterprint = reset_form; 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; } } 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 CollapseSection(elem); } /* ********** ********** Begin ********** */ var docSettings; function LoadPage() { // If not initialized, grab the DTE.Globals object if (globals == null) globals = GetGlobals(); // docSettings has settings for the current document, // which include persistent and non-persistent keys for checkbox filters and expand/collapse section states // persistKeys is an array of the checkbox ids to persist if (docSettings == null) { docSettings = new Array(); persistKeys = new Array(); } if (!sectionStatesInitialized) InitSectionStates(); SetCollapseAll(); // split screen var screen = new SplitScreen('header', 'mainSection'); // init devlang filter checkboxes SetupDevlangsFilter(); // init memberlist filter checkboxes for protected, inherited, etc SetupMemberOptionsFilter(); // init memberlist platforms filter checkboxes, e.g. .Net Framework, CompactFramework, XNA, Silverlight, etc. SetupMemberFrameworksFilter(); 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() { // for each key in persistArray, write the key/value pair to globals for (var i = 0; i < persistKeys.length; i++) Save(persistKeys[i],docSettings[persistKeys[i]]); // save the expand/collapse section states SaveSections(); } 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(); } /* ********** ********** End ********** */ /* ********** ********** Begin Language Filtering ********** */ var devlangsMenu; var devlangsDropdown; var memberOptionsMenu; var memberOptionsDropdown; var memberFrameworksMenu; var memberFrameworksDropdown; var dropdowns = new Array(); // initialize the devlang filter dropdown menu function SetupDevlangsFilter() { var divNode = document.getElementById('devlangsMenu'); if (divNode == null) return; var checkboxNodes = divNode.getElementsByTagName("input"); if (checkboxNodes.length == 1) { // only one checkbox, so we don't need a menu // get the devlang and use it to display the correct devlang spans // a one-checkbox setting like this is NOT persisted, nor is it set from the persisted globals var checkboxData = checkboxNodes[0].getAttribute('data'); var dataSplits = checkboxData.split(','); var devlang = ""; if (dataSplits.length > 1) devlang = dataSplits[1]; styleSheetHandler(devlang); } else { // setup the dropdown menu devlangsMenu = new CheckboxMenu("devlangsMenu", docSettings, persistKeys, globals); devlangsDropdown = new Dropdown('devlangsDropdown', 'devlangsMenu'); dropdowns.push(devlangsDropdown); // update the label of the dropdown menu SetDropdownMenuLabel(devlangsMenu, devlangsDropdown); // toggle the document's display docSettings codeBlockHandler(); styleSheetHandler(""); } } // called onclick in a devlang filter checkbox // tasks to perform at this event are: // toggle the check state of the checkbox that was clicked // update the user's devlang preference, based on devlang checkbox states // update stylesheet based on user's devlang preference // show/hide snippets/syntax based on user's devlang preference // function SetLanguage(checkbox) { // toggle the check state of the checkbox that was clicked devlangsMenu.ToggleCheckState(checkbox.id); // update the label of the dropdown menu SetDropdownMenuLabel(devlangsMenu, devlangsDropdown); // update the display of the document's items that are dependent on the devlang setting codeBlockHandler(); styleSheetHandler(""); } /* ********** ********** End Language Filtering ********** */ /* ********** ********** Begin Members Options Filtering ********** */ // initialize the memberlist dropdown menu for protected, inherited, etc function SetupMemberOptionsFilter() { if (document.getElementById('memberOptionsMenu') != null) { memberOptionsMenu = new CheckboxMenu("memberOptionsMenu", docSettings, persistKeys, globals); memberOptionsDropdown = new Dropdown('memberOptionsDropdown', 'memberOptionsMenu'); dropdowns.push(memberOptionsDropdown); // update the label of the dropdown menu SetDropdownMenuLabel(memberOptionsMenu, memberOptionsDropdown); // show/hide memberlist rows based on the current docSettings memberlistHandler(); } } function SetupMemberFrameworksFilter() { if (document.getElementById('memberFrameworksMenu') != null) { memberFrameworksMenu = new CheckboxMenu("memberFrameworksMenu", docSettings, persistKeys, globals); memberFrameworksDropdown = new Dropdown('memberFrameworksDropdown', 'memberFrameworksMenu'); dropdowns.push(memberFrameworksDropdown); // update the label of the dropdown menu SetDropdownMenuLabel(memberFrameworksMenu, memberFrameworksDropdown); // show/hide memberlist rows based on the current docSettings memberlistHandler(); } } function SetMemberOptions(checkbox, groupName) { var checkboxGroup = new Array(); if (groupName == "vis") { if (document.getElementById('PublicCheckbox') != null) checkboxGroup.push('PublicCheckbox'); if (document.getElementById('ProtectedCheckbox') != null) checkboxGroup.push('ProtectedCheckbox'); } else if (groupName == "decl") { if (document.getElementById('DeclaredCheckbox') != null) checkboxGroup.push('DeclaredCheckbox'); if (document.getElementById('InheritedCheckbox') != null) checkboxGroup.push('InheritedCheckbox'); } // toggle the check state of the checkbox that was clicked memberOptionsMenu.ToggleGroupCheckState(checkbox.id, checkboxGroup); // update the label of the dropdown menu SetDropdownMenuLabel(memberOptionsMenu, memberOptionsDropdown); // update the display of the document's items that are dependent on the member options settings memberlistHandler(); } function SetMemberFrameworks(checkbox) { // toggle the check state of the checkbox that was clicked memberFrameworksMenu.ToggleCheckState(checkbox.id); // update the label of the dropdown menu SetDropdownMenuLabel(memberFrameworksMenu, memberFrameworksDropdown); // update the display of the document's items that are dependent on the member platforms settings memberlistHandler(); } function DisplayFilteredMembers() { var iAllMembers = document.getElementsByTagName("tr"); var i; for(i = 0; i < iAllMembers.length; ++i) { if (((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 = ""; } // protected members are in separate collapseable sections in vs2005, so expand or collapse the sections ExpandCollapseProtectedMemberSections(); } function ExpandCollapseProtectedMemberSections() { var imgElements = document.getElementsByName("toggleSwitch"); var i; // Family for(i = 0; i < imgElements.length; ++i) { if(imgElements[i].id.indexOf("protected", 0) == 0) { if ((sectionStates[imgElements[i].id] == "e" && protectedMembers == "off") || (sectionStates[imgElements[i].id] == "c" && protectedMembers == "on")) { ExpandCollapse(imgElements[i]); } } } } /* ********** ********** 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; // get global vars from persistent store 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 = document.getElementsByTagName("TITLE")[0].innerText.replace(rExp, "''"); location.href = "mailto:" + alias + "?subject=" + subject + title + "&body=Topic%20ID:%20" + id + "%0d%0aURL:%20" + url + "%0d%0a%0d%0aComments:%20"; }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 7341 | Erik Purins |
p4.net --- pull p4.net#head |
||
//guest/shawn_hladky/P4.Net/release/1.0/doc/html/scripts/script_manifold.js | |||||
#1 | 6106 | Shawn Hladky | P4.Net: Branching release 1.0 | ||
//guest/shawn_hladky/P4.Net/main/doc/html/scripts/script_manifold.js | |||||
#1 | 6105 | Shawn Hladky | P4.Net: Updating documentation output to sandcastle. |