// Filename: shared.js // Version shared.js for windows server 2003 // version for 2.2.3 //************************************************ Shared components path setting ***************************************** //******************************************************************************************************************* // Date 11/07/01 // set_path = "" + document.URL ntshared = set_path.indexOf("::/") if (ntshared == -1) { var moniker= "ms-its:"; var sSharedCHM = moniker+"uddi.mmc.chm::/"; } else { path = set_path.substring(0,ntshared) path = path.toLowerCase() ntshared = path.lastIndexOf("\\") var moniker = path.substring(0,ntshared)+ "\\"; //var ntshared = moniker.lastIndexOf("\\") //var moniker = moniker.substring(0,ntshared) + "\\"; var sSharedCHM= moniker+"uddi.mmc.chm::/"; } //************************************************ EVENT HANDLING ******************************************** //******************************************************************************************************************* // re-directs to the proper event-driven functions. // window.onload = load_object; window.onload = loadPage; document.onclick= onclickTriage; document.onmouseover= gettingHot; document.onmouseout= gettingCold; window.onunload=saveChecklistState; window.onresize= resizeDiv; window.onbeforeprint = set_to_print; window.onafterprint = reset_form; //******************************************** USER-DEFINED GLOBAL VARIABLES ************************************ //******************************************************************************************************************** // The images listed below can all be changed by the user. var isIE5 = (navigator.appVersion.indexOf("MSIE 5")>0) || (navigator.appVersion.indexOf("MSIE")>0 && parseInt(navigator.appVersion)> 4); var isIE55 = (navigator.appVersion.indexOf("MSIE 5.5")>0); if (isIE5 && isIE55) isIE5 = false; var isIE6 = (navigator.appVersion.indexOf("MSIE 6")>0); var isIE4 = (navigator.appVersion.indexOf("MSIE 4")>0); if (isIE4){ var moniker= "ms-its:"; // moniker= ""; for flat files var sSharedCHM= moniker+"ntshared.chm::/"; } if (!isIE5 && !isIE55 && !isIE4 && !isIE6) { isIE6 = true; } var sShortcutTip= ""; var gifwithin = false; if(!isIE4){ xmldoc = new ActiveXObject("microsoft.XMLDOM"); xmldoc.async = false; xmldoc.load(sSharedCHM + "alttext.xml"); var Alt_sPreviousTip= xmldoc.getElementsByTagName("sPreviousTip") var Alt_sNextTip= xmldoc.getElementsByTagName("sNextTip") var Alt_sExpandTip= xmldoc.getElementsByTagName("sExpandTip") var Alt_sPopupTip= xmldoc.getElementsByTagName("sPopupTip") var hld_path2reuse= xmldoc.getElementsByTagName("path2reuse") var hld_path2glossary= xmldoc.getElementsByTagName("path2glossary") var hld_rel_gif = xmldoc.getElementsByTagName("reltopgif") var hld_chmName = xmldoc.getElementsByTagName("chmName") var hld_emailer = xmldoc.getElementsByTagName("emailer") var hld_sendtext = xmldoc.getElementsByTagName("sendtext") var hld_sendto = xmldoc.getElementsByTagName("sendto") // var defaultStartMode; var defaultCPanelMode; var smartErrorTextNode; var smartErrorText; var xmldocSKUSettings; // Grab the ALTTEXT.XML enteries for smart span classes. // Get SKU specific defaults. var defaultSKUSettingsURL = xmldoc.documentElement.selectSingleNode("smartreusabletext"); if (defaultSKUSettingsURL != null) { if (defaultSKUSettingsURL.text == sSharedCHM + "alttext.xml") { xmldocSKUSettings = xmldoc; } else { xmldocSKUSettings = new ActiveXObject("microsoft.XMLDOM"); xmldocSKUSettings.async = false; xmldocSKUSettings.load(moniker + defaultSKUSettingsURL.text); } if (xmldocSKUSettings.documentElement != null) { defaultStartMode = xmldocSKUSettings.documentElement.selectSingleNode("smartstartdefault"); defaultCPanelMode = xmldocSKUSettings.documentElement.selectSingleNode("smartcpaneldefault"); smartErrorTextNode = xmldocSKUSettings.documentElement.selectSingleNode("smarterrortext"); smartErrorText = smartErrorTextNode ? smartErrorTextNode.text : "XOXOX"; } } // (defaultSKUSettingsURL != NULL) // var sPreviousTip="" + Alt_sPreviousTip.item(0).nodeTypedValue var sNextTip="" + Alt_sNextTip.item(0).nodeTypedValue var sExpandTip="" + Alt_sExpandTip.item(0).nodeTypedValue var sPopupTip="" + Alt_sPopupTip.item(0).nodeTypedValue var path2reuse="" + hld_path2reuse.item(0).nodeTypedValue var path2glossary="" + hld_path2glossary.item(0).nodeTypedValue var rel_gif="" + hld_rel_gif.item(0).nodeTypedValue var chmName="" + hld_chmName.item(0).nodeTypedValue+"::/" var emailer="" + hld_emailer.item(0).nodeTypedValue var sendtext="" + hld_sendtext.item(0).nodeTypedValue var sendto="" + hld_sendto.item(0).nodeTypedValue var xmldom = new ActiveXObject("microsoft.XMLDOM"); xmldom.async = false; //if (!xmlLoaded) { xmldoc = new ActiveXObject("microsoft.XMLDOM"); // Init Properties xmldoc.async = false; xmldoc.validateOnParse = false; // improve perf xmldoc.resolveExternals = false; xmldoc.preserveWhiteSpace = false; // Load Document xmldoc.load(moniker + path2reuse + "reusable.xml"); // if (xmldoc == null || xmldoc.documentElement == null) return; // couldn't open reusable.xml xmlLoaded = true; // } } // skip all this because ie4 doesn't support xml. else { var sPreviousTip="" var sNextTip="" var sExpandTip="" var sPopupTip="" var rel_gif="no" } var closed = sSharedCHM + "plusCold.gif"; //image used for collapsed item in callExpand() var closedHot = sSharedCHM + "plusHot.gif"; //hot image used for collapsed item in callExpand() var expand = sSharedCHM + "minusCold.gif"; //image used for expanded item in callExpand() var expandHot = sSharedCHM + "minusHot.gif"; //hot image used for expanded item in callExpand() var previousCold= sSharedCHM + "previousCold.gif"; var previousHot= sSharedCHM + "previousHot.gif"; var nextCold= sSharedCHM + "nextCold.gif"; var nextHot= sSharedCHM + "nextHot.gif"; var shortcutCold= sSharedCHM + "shortcutCold.gif"; var shortcutHot= sSharedCHM + "shortcutHot.gif"; var popupCold= sSharedCHM + "popupCold.gif"; var popupHot= sSharedCHM + "popupHot.gif"; var emptyImg= sSharedCHM + "empty.gif"; //image used for empty expand var noteImg= sSharedCHM + "note.gif"; //image used for notes var tipImg= sSharedCHM + "tip.gif"; //image used for tips var warningImg= sSharedCHM + "warning.gif"; //image used for warnings var cautionImg= sSharedCHM + "caution.gif"; //image used for cautions var importantImg= sSharedCHM + "important.gif"; //image used for important notice var relTopicsImg= sSharedCHM + "rel_top.gif"; //image used for important notice var branchImg= sSharedCHM + "elle.gif"; var branchImg_RTL= sSharedCHM + "elle_rtl.gif"; //******************************************** GLOBAL VARIABLES ****************************************** //******************************************************************************************************** var joejoe = false; var printing = false; var single = "FALSE"; var scroller = "FALSE"; var valet = "FALSE"; var isRTL= (document.dir=="rtl"); var imgStyleRTL= ""; if (isRTL) imgStyleRTL=" style='filter:flipH' "; var sActX_TDC= "CLASSID='CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83'"; //Tabular Data Control for reusable text data var sSharedReusableTextFile= sSharedCHM + "reusable.xml"; // common reusable text file var sSharedReusableTextFileRecord= "para"; //reusable text record var numbers= /\d/g; //javascript regular expression var spaces= /\s/g; //javascript regular expression var semicolon= /;/g; //javascript regular expression var isPersistent= false; //******************************************** INITIALIZATION ************************************************* //****************************************************************************************************************** function list_them(){ var envelope = sSharedCHM +'envelope.gif'; var server = "
 " + sendtext + " "; server += "
"; var i; for (i=0; i < document.all.length; i++){ if ((document.all[i].tagName == "P") || (document.all[i].tagName == "H1")|| (document.all[i].tagName == "H6")){ document.all[i].outerHTML = server + document.all[i].outerHTML; i = document.all.length; } } } //*** loadPage ********************************************************************************************** // Adds the default image tags and re-usable text to the HTML page. function loadPage(){ if (printing == true) return; if (emailer == "yes" ) list_them(); isPersistent= (document.all.item("checklist")!=null) && ((isIE5) || (isIE55) ||(isIE6)); setPreviousNext(); resizeDiv(); if (isPersistent) getChecklistState(); load_object(); addReusableText(); insertImages(); } //****** setPreviousNext ************************************************************************ ********************************************************************************************* // insert previous/next navbar // called by: function setPreviousNext(){ var oNav = document.all.item("nav"); if (oNav == null ) return; var sPreviousALT= sPreviousTip; var sNextALT= sNextTip; var sHTMLfile= oNav.innerHTML; var imgPrev= ""+ sPreviousALT +""; var imgNext= ""+ sNextALT  + ""; var previousNextObject= ""; oNav.innerHTML= "" + "
" +imgPrev + "
"; document.body.innerHTML= document.body.innerHTML + previousNextObject; findPageSeq(); if (printing == true) return; var thisLoc= document.location.href +"#"; if (previousLink.href== thisLoc) previousLink.style.display="none"; else previousLink.style.display="block"; if (nextLink.href== thisLoc) nextLink.style.display="none"; else nextLink.style.display="block"; } function findPageSeq() { var rs= HTMlist.recordset; var thisLoc= document.location.href; var iLoc= thisLoc.lastIndexOf("/"); if (iLoc > 0) thisLoc= thisLoc.substring(iLoc+1, thisLoc.length); if (nav.style == "[object]") { nav.style.visibility="hidden"; printing = false; } else { printing = true; return; } rs.moveFirst(); while (!rs.EOF) { if (thisLoc == rs.fields("HTMfiles").value){ nav.style.visibility="visible"; rs.MoveNext(); break; } previousLink.href=rs.fields("HTMfiles").value; rs.moveNext(); } if (!rs.EOF) nextLink.href=rs.fields("HTMfiles").value; } //******Re-usable text ********************************************************************************************* // Inserts the Tabular Data Control (TDC) object at the end of the page // Inserts "re-usable text" from the txt file at: // e.g. for record#4 in the printing.txt in printing.chm. // // addReusableText() - called during document load to find all references // render time bound contents. Extracts content resources from reusable.xml. // // "class" names bound (reuse, smart) // "reuse" static lookup of commonly referred to text. // "smart" dynamic lookup of navigation text relevent // to the shell presentation of the start menu // and the control panel, (simple and classic), for the logged on user. // Requires inserting custom supported by Help and Support Services viewer. // Currently not available from HTML Help control. 2000/01/12. // function smarthelperror(){ // alert("error - error") addReusableText(); insertImages(); return true; // alert("error - error") } //var obj = window.document.createElement("OBJECT"); function load_object(){ if(!isIE6) return; //window.onerror = smarthelperror; try{ var obj = window.document.createElement("OBJECT"); var sActX_PCHealth = "CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7"; objLoaded = true; obj.width = 1; obj.height = 1; obj = document.body.insertAdjacentElement("beforeEnd", obj) obj.id = "pchealth"; obj.classid = sActX_PCHealth; // alert("success") } catch(e){} } function addReusableText(){ if (isIE4) return; // no reusable text for IE4 var coll = document.all.tags("SPAN"); var xmlLoaded = false; var control = null; var thisID; var strKey; var text; // original error text text = "OXO"; // //queried state of shell presentation for start menu and control panel. var menuSimple = false; var controlSimple = false; // holds calculated lookup suffixes for smart class items. var strSuffixStartMenuOnly = ""; var strSuffixStartMenuAndControlPanel = ""; // smart class UserSettings Interface classid var sActX_PCHealth = "CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7"; // smart class lookup suffixes per shell presentation mode. // TODO: Findout where these constants are best documented. var strMenuClassic = "_smclassic"; var strMenuSimple = "_smsimple"; var strCPanelClassic = "_cpclassic"; var strCPanelSimple = "_cpsimple"; // only attempt to query once per rendering var bPresentationModeQueried = false; // span_count = coll.length; // Check every span in the document. for (var i=0; i< span_count; i++) { var thisSpan = coll[i]; var spanClass = thisSpan.className.toLowerCase(); if (spanClass == "reuse" || spanClass == "smart") { if (isRTL) thisSpan.dir = "rtl"; if (thisSpan.id == null) break; // strKey is the key we'll use to look up the replaceable text in the XML file strKey = thisSpan.id.toLowerCase(); // skip smart tags when defaults are not present if ((defaultSKUSettingsURL != null) && (xmldocSKUSettings.documentElement != null)) { if (spanClass == "smart") { // Query Presentation Mode once per rendering. if (!bPresentationModeQueried) { bPresentationModeQueried=true; // Set To Defaults if (defaultStartMode != null) { menuSimple = (defaultStartMode.text == strMenuSimple); } else { menuSimple = true; } if (defaultCPanelMode != null) { controlSimple = (defaultCPanelMode.text == strCPanelSimple); } else { controlSimple = true; } // alert("inside of reuse") // Get the current user's presentation settings // Attempt to read smart help values from system var test = window.document.all("pchealth"); if (test != null) { if (test.UserSettings != null) { menuSimple = test.UserSettings.IsStartPanelOn; controlSimple = test.UserSettings.IsWebViewBarricadeOn; } else { menuSimple = (defaultStartMode.text == strMenuSimple) controlSimple = (defaultCPanelMode.text == strCPanelSimple); } }// (test != null) }// (!bPresentationModeQueried) // get the error text to display text = smartErrorText; // Build key suffixes. One for start menu only and one for start menu and control panel. strSuffixStartMenuOnly = (menuSimple ? strMenuSimple : strMenuClassic); strSuffixStartMenuAndControlPanel = strSuffixStartMenuOnly + (controlSimple ? strCPanelSimple : strCPanelClassic); // The actual key could have either strSuffixStartMenuOnly or strSuffixStartMenuAndControlPanel suffixes. // strSuffixStartMenuAndControlPanel has precedence over strSuffixStartMenuOnly strKey = strKey + strSuffixStartMenuAndControlPanel; //alert(strKey) }//if (spanClass == "smart") }// ((defaultSKUSettingsURL != null) && (xmldocSKUSettings.documentElement != null)) // Lookup XML node containing reference var strNodeSelector = "glossSection/entry[@entryID='" + strKey + "']/scopeDef/def"; var node = xmldoc.documentElement.selectSingleNode(strNodeSelector); // if we haven't found the node yet, try the other suffix if this is a smart span if (node == null && spanClass == "smart" && (defaultSKUSettingsURL != null) && (xmldocSKUSettings.documentElement != null)) { // one more try--use the other suffix strKey = thisSpan.id.toLowerCase() + strSuffixStartMenuOnly; strNodeSelector = "glossSection/entry[@entryID='" + strKey + "']/scopeDef/def"; node = xmldoc.documentElement.selectSingleNode(strNodeSelector); } // okay, we found the node, get the text // alert(coll.length) if (node != null) { // replace the span's contents with the reusable text thisSpan.insertAdjacentHTML("BeforeBegin",node.text); // var coll = document.all.tags("SPAN"); thisSpan.className = "anything" thisSpan.innerHTML = ""; //alert(node.text) //thisSpan.innerHTML = node.text; } else { // error shown by this OXO thisSpan.innerHTML = text; } } // if (spanClass == "reuse" || spanClass == "smart") }// for }// addReusableText() // //****** insertImages ********************************************************************************************* // Inserts shared images in User-Defined Variables section and thumbnails. var booking = false; function insertImages(){ if (printing == false) booking = true; if (printing == true && booking == true ) { booking = false; return; } // insert alert icons var collP = document.all.tags("P"); for (var i=0; i " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="warning") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="caution") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="tip") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="important") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="empty") collP[i].innerHTML =" " + collP[i].innerHTML; if (collP[i].className.toLowerCase()=="reltopics" && rel_gif == "yes") { collP[i].outerHTML =" " + collP[i].outerHTML; } } //alert(printing) //alert(isIE55) //indents for Navigation Tree var collUL = document.all.tags("UL"); if (!printing) { for (var i=0; i" + imgSpace; } // insert SHORTCUT icons if (oAnchor=="shortcut") { document.anchors[i].title= sShortcutTip; if (document.anchors[i].children.tags("IMG")(0) && document.anchors[i].children.tags("IMG")(0).className.toLowerCase() == "shortcut") imgInsert= ""; // not to re-insert when persistent else imgInsert= "" + imgSpace; } // insert POPUP icons else if (oAnchor=="wpopup" || oAnchor=="wpopupweb") document.anchors[i].title= sPopupTip; else if (document.anchors[i].className.toLowerCase()=="popupicon") if (document.anchors[i].children.tags("IMG")(0) && document.anchors[i].children.tags("IMG")(0).className.toLowerCase() == "popup") imgInsert= ""; // not to re-insert when persistent else imgInsert= "" + imgSpace; // insert EXPAND icons else if (oAnchor=="expand") { document.anchors[i].title= sExpandTip; if (document.anchors[i].children.tags("IMG")(0) && document.anchors[i].children.tags("IMG")(0).className.toLowerCase() == "expand") imgInsert= ""; // not to re-insert when persistent else{ if (document.anchors[i].parentElement.offsetLeft == document.anchors[i].offsetLeft) { imgSpace= ""; if (isRTL){ document.anchors[i].parentElement.style.marginRight= "1.5em"; imgStyle=" style=margin-right:'-1.5em'";} else { document.anchors[i].parentElement.style.marginLeft= "1.5em"; imgStyle=" style=margin-left:'-1.5em'";} } imgInsert= "" +imgSpace; } } // insert thumbnail images else if (oAnchor=="thumbnail" || oAnchor=="thumbnailweb"){ var sAltText = document.anchors[i].innerHTML; gifwithin = true; var sThumbnailText = document.anchors[i].title; var oImg = document.anchors[i].href.toLowerCase(); if (oAnchor=="thumbnail") var sThumbnailImg= moniker + getURL(oImg); else var sThumbnailImg = document.anchors[i].href.toLowerCase(); found = sAltText.indexOf("BACKGROUND-COLOR:") if (found != -1) { stop_p = sAltText.indexOf(">"); sAltText = sAltText.substring(stop_p + 1, sAltText.length); stop_p = sAltText.indexOf(""); Highlighted = sAltText.substring(0,stop_p) sAltText = Highlighted + sAltText.substring(stop_p + 7, sAltText.length); } document.anchors[i].outerHTML = "
"+document.anchors[i].outerHTML+"
"; document.anchors[i].innerHTML = " " + sAltText + "

" +sThumbnailText+"

"; if (isRTL) thumbDiv.style.styleFloat= "right"; } document.anchors[i].innerHTML = imgInsert + document.anchors[i].innerHTML; if (isRTL) document.anchors[i].dir="rtl"; } } //***** onclickTriage **************************************************************************************** // redirects to the appropriate function based on the ID of the clicked tag. function onclickTriage(){ var e= window.event.srcElement; // if the innerHTML in the tag is encapsulated by a style tag or hightlighted in the word seach, // the parentElement is called. if ((isIE55 || isIE6) && printing == true) { printing = false; reset_form(); } for (var i=0; i < 5; i++) if (e.tagName!="A" && e.parentElement!=null) e= e.parentElement; eID= e.id.toLowerCase(); if (popupOpen) closePopup(); // expand image in a new window if (eID=="thumbnail" || eID=="pophtm") popNewWindow(e); else if (eID=="thumbnailweb") callThumbnailWeb(e); else if (eID=="wpopup") callPopup(e); else if (eID=="wpopupweb") callPopupWeb(e); else if (eID=="shortcut") callShortcut(e); else if (eID=="reltopics") callRelatedTopics(e); else if (eID=="altloc") callAltLocation(e); else if (eID=="expand") callExpand(e); // added to support Randy's Quad method code else QuadDocumentClick() // ****************************** } //*** gettingHot **************************************************************************************** // Makes all the required changes for mouseover. function gettingHot() { var e = window.event.srcElement; if (e.id.toLowerCase()=="cold") e.id ="hot"; else if (e.src== previousCold) e.src = previousHot; else if (e.className.toLowerCase()=="navbar" && e.children.tags("IMG")(0).src== previousCold) e.children.tags("IMG")(0).src= previousHot; else if (e.src== nextCold) e.src = nextHot; else if (e.className.toLowerCase()=="navbar" && e.children.tags("IMG")(0).src== nextCold) e.children.tags("IMG")(0).src= nextHot; else if (e.className.toLowerCase()=="shortcut" && e.tagName=="IMG") e.src = shortcutHot; // tags have a class else if (e.id.toLowerCase()=="shortcut") e.children.tags("IMG")(0).src = shortcutHot; // tags have an ID else if (e.className.toLowerCase()=="popup" && e.tagName=="IMG") e.src = popupHot; // tags have a class else if (e.className.toLowerCase()=="popupicon") e.children.tags("IMG")(0).src = popupHot; // tags have an ID else if ((e.className.toLowerCase()=="expand" && e.tagName=="IMG") ||( e.id.toLowerCase()=="expand")) expandGoesHot(e); // Added to support Quad Method ************************** if (e != null && e.firstChild != null && e.firstChild.tagName != null && e.firstChild.tagName.toLowerCase() == "input" && e.firstChild.type.toLowerCase() == "radio" && e.parentElement.className != "indentGray"){ QuadDocumentMouseOver() } // ***************************** } //*** gettingCold ************************************************************************************** // Initial state for mouseout. function gettingCold() { var e = window.event.srcElement; if (e.id.toLowerCase()=="hot") e.id ="cold"; else if (e.src== previousHot) e.src = previousCold; else if (e.className.toLowerCase()=="navbar" && e.children.tags("IMG")(0).src== previousHot) e.children.tags("IMG")(0).src= previousCold; else if (e.src== nextHot) e.src = nextCold; else if (e.className.toLowerCase()=="navbar" && e.children.tags("IMG")(0).src== nextHot) e.children.tags("IMG")(0).src= nextCold; else if (e.className.toLowerCase()=="shortcut" && e.tagName=="IMG") e.src = shortcutCold; // tags have a class else if (e.id.toLowerCase()=="shortcut") e.children.tags("IMG")(0).src= shortcutCold; // tags have an ID else if (e.className.toLowerCase()=="popup" && e.tagName=="IMG") e.src = popupCold; // tags have a class else if (e.className.toLowerCase()=="popupicon") e.children.tags("IMG")(0).src= popupCold; // tags have an ID else if ((e.className.toLowerCase()=="expand" && e.tagName=="IMG") ||( e.id.toLowerCase()=="expand")) expandGoesCold(e); // Added to support Quad Method ************************** if (e != null && e.firstChild != null && e.firstChild.tagName != null && e.firstChild.tagName.toLowerCase() == "input" && e.firstChild.type.toLowerCase() == "radio" && e.parentElement.className != "indentGray"){ QuadDocumentMouseOver() } // ***************************** } //****************************************** OBJECT CONSTRUCTION ************************************** //***************************************************************************************************** // Uses an A tag to pass parameters between an HTML page and this script. // Creates an ActiveX Object from these parameters, appends the Object to the end of the page, // and clicks it. These objects relate to HTMLHelp environment and information about them can be found on the http://HTMLHelp site. // Object construction variables ********************************************************************* var sParamCHM,sParamFILE, sParamEXEC, sParamMETA,iEND; var sActX_HH= " type='application/x-oleobject' classid='clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11' "; //*** callPopup *************************************************************************************** // creates an object from an tag HREF, the object inserts a winhelp popup // called by: @@Popup text@@ var joker = false; var blague = true; function callPopup(eventSrc) { if (popupOpen) closePopup(); var ntsharedAdded= false; // make sure the object is only added once var CHMspecificAdded= false; // make sure the object is only added once var coll = document.all.tags("SPAN"); var sIndex,sText=" ",sFile,sFileID,dataBindingObject; var e= eventSrc; var eH= unescape(e); eH = eH.toLowerCase(); var eH_= eH.toLowerCase(); if(event){ event.returnValue = false; } found = false; var iTOPIC = eH.lastIndexOf("topic="); if (iTOPIC==-1) return; sParamTOPIC = eH.substring((iTOPIC+6),eH.length); if (!isIE4){ if (!joejoe){ xmldom.load(moniker + path2glossary + "glossary.xml"); joejoe = true; } var o=0; var node = ""; node = xmldom.selectSingleNode("glossary/glossSection/entry[@entryID='" + sParamTOPIC + "']"); if(node!=null) { found = true; var ralf = ""; ralf = node.getElementsByTagName("term") sText = "
" + ralf.item(0).nodeTypedValue + "
"; ralf = node.getElementsByTagName("para") if (ralf.length != 0){ sText = sText + "
" + ralf.item(0).nodeTypedValue; sText = sText + "
"; } seealsos = node.getElementsByTagName("seeAlso"); var o=0; look_at = xmldom.getElementsByTagName("glossary/locSection/locItem[@locItemID = 'SeeAlso']"); while (o < seealsos.length){ sIndex = seealsos.item(o).getAttribute("seeAlsoTermID"); node = xmldom.selectSingleNode("glossary/glossSection/entry[@entryID='" + sIndex + "']"); ralf = node.getElementsByTagName("term"); sTerm = ralf.item(0).nodeTypedValue; if (o == 0) { sText = sText + "
" + look_at.item(0).nodeTypedValue + " " // sIndex = "" sIndex = "" + sTerm + "" } else { sIndex = ", " + sTerm + "" } o++; sText = sText + sIndex } definition = xmldom.getElementsByTagName("glossary/locSection/locItem[@locItemID = 'See']"); seeentrys = node.getElementsByTagName("seeEntry"); while (o < seeentrys.length){ sIndex = seeentrys.item(o).getAttribute("seeTermID"); node = xmldom.selectSingleNode("glossary/glossSection/entry[@entryID='" + sIndex + "']"); ralf = node.getElementsByTagName("term"); sTerm = ralf.item(0).nodeTypedValue; if (o == 0) { sText = sText + "
" + definition.item(0).nodeTypedValue + " " // sIndex = "" sIndex = "" + sTerm + "" } else { sIndex = ", " + sTerm + "" } o++; sText = sText + sIndex } } if (o != 0) sText = sText + "
" if ((isIE55 || isIE6) && found){ var oPopup = false var oPopup = window.createPopup(); var strScript = ""; var strDoc = oPopup.document.body.outerHTML.toLowerCase() oPopup.document.write(strDoc.replace(">", " onclick=\"clickPopup()\">" + strScript + "")); //oPopup.document.write(strDoc.replace(">", " onclick=\"clickPopup()\, onkeypress=\"process_closePopup()\">" + strScript + "")); oPopup.document.createStyleSheet(sSharedCHM + "coUA.css"); // Apply the stylesheet. var oPopBody = oPopup.document.body; //oPopBody.style.backgroundColor = '#FFFFCC'; // oPopBody.style.border = "solid black 1px"; oPopBody.style.margin = "0 0 0 0"; if (isRTL) oPopBody.innerHTML = "" + sText + "" // need to add the style class here. else oPopBody.innerHTML = "" + sText + "" // alert(oPopBody.innerHTML) if (window.event){ joker = window.event.srcElement; } oPopup.show(0, 0, 400, 8, joker); // Show the popup at an arbitrary size. var textSize = oPopBody.createTextRange(); var wPop = textSize.boundingWidth + oPopBody.offsetWidth - oPopBody.clientWidth; // Get the size of the text. var hPop = oPopBody.scrollHeight; oPopup.hide(); oPopup.document.parentWindow.PopParent = window; oPopup.document.parentWindow.PopObject = oPopup; oPopup.show(0, 1, wPop , hPop, joker); //oPopup.document.focus(oPopup.document.body.JOKER); return; } if (found){ if (blague){ document.body.insertAdjacentHTML("beforeEnd", ""); blague = false; } window.wPopupWeb.innerHTML = sText; callPopupWeb(e); return; } } // for support of IE4 disable xml popups var iTOPIC = eH_.lastIndexOf("topic="); if (iTOPIC==-1) return; sParamTOPIC = eH.substring((iTOPIC+6),eH.length); // extracts the topic for item2 var iHELP = eH_.lastIndexOf("help="); if (iHELP==-1) return; sParamHELP = eH.substring(iHELP+5,iTOPIC); // extracts the help file for item1 if (document.hhPopup) document.hhPopup.outerHTML = ""; // if hhPopup object exists, clears it var h= ""; h= h + ""; document.body.insertAdjacentHTML("beforeEnd", h); document.hhPopup.hhclick(); } //*** callAltLocation****************************************************************************** // creates an object from an tag HREF, the object will navigate to the alternate location if the first location is not found. // called from: @@Link text here@@ function callAltLocation(eventSrc) { var e= eventSrc; var eH= unescape(e.href); var eH_= eH.toLowerCase(); var sFILEarray,sCHMarray; event.returnValue = false; // var sParamTXT= e.innerHTML; // sParamTXT= sParamTXT.replace(semicolon,""); var sParamTXT= ""; var iFILE = eH_.lastIndexOf("file="); if (iFILE==-1) return; sParamFILE= eH.substring((iFILE+5),eH.length); // extracts the 2 HTM files sParamFILE= sParamFILE.replace(spaces,""); iSPLIT= sParamFILE.match(semicolon); if (iSPLIT) sFILEarray = sParamFILE.split(";"); // separates the 2 HTM files else return; var iCHM = eH_.lastIndexOf("chm="); if(iCHM==-1) return; else sParamCHM = eH.substring(iCHM+4,iFILE); // extracts the 2 CHM's sParamCHM= sParamCHM.replace(spaces,""); iSPLIT= sParamCHM.match(semicolon); if (iSPLIT) sCHMarray= sParamCHM.split(";"); // separates the 2 CHM's else return; sParamFILE= moniker + sCHMarray[0]+ "::/" + sFILEarray[0] + ";" + moniker + sCHMarray[1]+ "::/" + sFILEarray[1]; if (document.hhAlt) document.hhAlt.outerHTML = ""; // if hhAlt object exists, clears it var h= ""; h= h + ""; document.body.insertAdjacentHTML("beforeEnd", h); document.hhAlt.hhclick(); } //*** callRelatedTopics****************************************************************************** // creates an object from an tag HREF, the object inserts a popup of the related topics to select // called from: Related Topics function callRelatedTopics(eventSrc) { var e= eventSrc; var eH= unescape(e.href); var eH_= eH.toLowerCase(); event.returnValue = false; var iMETA = eH_.lastIndexOf("meta="); if (iMETA==-1) return; sParamMETA = eH.substring((iMETA+5),eH.length); // extracts the META keywords for item2 var iCHM = eH_.lastIndexOf("chm="); if(iCHM==-1) sParamCHM = ""; else sParamCHM = eH.substring(iCHM+4,iMETA); // extracts the CHM files for item1 if (document.hhRel) document.hhRel.outerHTML = ""; // if hhRel object exists, clears it var h= ""; h= h + ""; document.body.insertAdjacentHTML("beforeEnd", h); document.hhRel.hhclick(); } //*** popNewWindow*************************************************************************************** // creates an object from an tag HREF, the object then opens a new window from the image URL found in the HREF // called from: @@alt text here@@ // the thumbnail image is loaded by loadPage(); function popNewWindow(eventSrc) { var eH= eventSrc.href; event.returnValue = false; // extracts the thumbnail image URL from the tag HREF sParamFILE = getURL(eH); if (sParamFILE=="") return; // sParamFILE = moniker + sParamFILE; // sParamFILE = moniker + sParamFILE; //alert(sParamFILE) // callThumbnailWeb(sParamFFILE) // if the hhWindow object exists, clears it if (document.hhWindow) document.hhWindow.outerHTML = ""; var h = ""; document.body.insertAdjacentHTML("beforeEnd", h); document.hhWindow.hhclick(); } //*** callShortcut *************************************************************************************** // creates an object from an tag, the object then calls the executable code // called from: @@Shortcut text@@ // the shortcut image is loaded by loadInitialImg(); function callShortcut(eventSrc) { var e= eventSrc; var eH= unescape(e.href); var eH_= eH.toLowerCase(); event.returnValue = false; // extracts the error file URL from the tag HREF iEND= eH.length; sParamFILE = getURL(eH); var iEXEC = eH_.lastIndexOf("exec="); var endstr = eH.lastIndexOf(","); var sstr = eH.substring(endstr + 1, iEND); var matchstr = ""; for(i=endstr + 1;i< iEND; i++) //added 3/25/2002 by marissam to compensate for extra comma in shortcut calls in snippet matchstr = matchstr + " "; if(sstr == matchstr) { iEND = iEND - (iEND-endstr); } if (iEXEC==-1) return; else sParamEXEC = eH.substring(iEXEC+5,iEND); // alert("this is it-" + sParamEXEC + "-sParamExec"); // extracts the executable for item1 if (document.hhShortcut) document.hhShortcut.outerHTML = ""; // if the hhShortcut object exists, clears it var h = ""; document.body.insertAdjacentHTML("beforeEnd", h); document.hhShortcut.hhclick(); } //**************************************** EXPAND FUNCTIONS ********************************************************* //******************************************************************************************************************** //** callExpand ************************************************************************************************** // This expands & collapses (based on current state) "expandable" nodes as they are clicked. // Called by: @@Hot text@@ // Followed by:
function callExpand(eventSrc) { var e= eventSrc; event.returnValue = false; // prevents navigating for tag var oExpandable = getExpandable(e); var oImg = getImage(e); if (oExpandable.style.display == "block") doCollapse(oExpandable, oImg); else doExpand(oExpandable, oImg); } //** expandGoesHot ********************************************************************************************* // Returns expand image to hot. function expandGoesHot(eventSrc){ var e= eventSrc; //alert(e.outerHTML); var oExpandable = getExpandable(e); var oImg = getImage(e); //alert (oImg.src) if (oExpandable == false){ plus_or_minus = oImg.src.indexOf("minus") if (plus_or_minus == -1){ //alert(plus_or_minus) oImg.src = closedHot } else { oImg.src = expandHot; //alert(plus_or_minus) } return; } if (!isIE4){ if (oExpandable.style.display == "block"){ oImg.src = expandHot; //alert(oImg.src) } else oImg.src = closedHot; } } //** expandGoesCold ********************************************************************************************* // Returns expand image to cold. function expandGoesCold(eventSrc){ var e= eventSrc; var oExpandable = getExpandable(e); var oImg = getImage(e); // alert (oImg.src) if (oExpandable == false){ plus_or_minus = oImg.src.indexOf("minus") if (plus_or_minus == -1){ //alert(plus_or_minus) oImg.src = closed } else { oImg.src = expand; //alert(plus_or_minus) } return; } if (!isIE4){ if (oExpandable.style.display == "block") oImg.src = expand; else oImg.src = closed; } } //** getExpandable *****************************[used by callExpand, expandGoesHot, expandGoesCold]******* // Determine if the element is an expandable node or a child of one. function getExpandable(eventSrc){ var e = eventSrc; var iNextTag, oExpandable; for (var i=1;i<4; i++){ iNextTag= e.sourceIndex+e.children.length+i; oExpandable= document.all(iNextTag); if (oExpandable.className.toLowerCase()=="expand" || iNextTag == document.all.length) return oExpandable break; } return false; } //** getImage ***********************************[used by callExpand, expandGoesHot, expandGoesCold]******* // Find the first image in the children of the current srcElement. // (allows the image to be placed anywhere inside the tag) function getImage(header) { var oImg = header; if(oImg.tagName != "IMG") oImg=oImg.children.tags("IMG")(0); return oImg; } //**** expandAll ******************************************************************************************************* // Will expand or collapse all "expandable" nodes when clicked. [calls closeAll()] // called by: expand all var stateExpand = false; //applies to the page //**** **************************************************************************************************************** function expandAll() { var oExpandToggle, oImg; var expandAllMsg = "expand all"; //message returned when CloseAll() is invoked var closeAllMsg = "close all"; //message returned when ExpandAll() is invoked var e= window.event.srcElement; event.returnValue = false; for (var i=0; i< document.anchors.length; i++){ oExpandToggle = document.anchors[i]; if (oExpandToggle.id.toLowerCase() == "expand"){ oExpandable = getExpandable(oExpandToggle); oImg = getImage(oExpandToggle); if (stateExpand == true) doCollapse(oExpandable, oImg); else doExpand(oExpandable, oImg); } } if (stateExpand == true) { stateExpand = false; e.innerText= expandAllMsg; } else { stateExpand = true; e.innerText= closeAllMsg; } } //**** doExpand ******************************************************************************************************* // Expands expandable block & changes image var redo = false; function doExpand(oToExpand, oToChange) { var oExpandable= oToExpand; var oImg= oToChange; // if (printing == "TRUE") return; oImg.src = expand; oExpandable.style.display = "block"; if (!redo && isIE4) { // alert("what") redo = true; // focus(oToExpand); doExpand(oToExpand, oToChange); } } //**** doCollapse ***************************************************************************************************** // Collapses expandable block & changes image function doCollapse(oToCollapse, oToChange) { // if (printing == "TRUE") return; var oExpandable= oToCollapse; var oImg= oToChange; oExpandable.style.display = "none"; oImg.src = closed; } //******************************************************************************************************* //******* WEB FUNCTIONS ************************************************************************** //******************************************************************************************************* //**** callThumbnailWeb ************************************************************************************** function callThumbnailWeb(eventSrc) { var e= eventSrc; event.returnValue = false; var thumbnailWin= window.open (e.href, "height=450, width=600, left=10, top=10, dependent=yes, resizable=yes, status=no, directories=no, titlebar=no, toolbar=yes, menubar=no, location=no","true"); thumbnailWin.document.write ("Windows 2000"); return; } //********************************************************************************************************* //********************************************************************************************************* var popupOpen= false; //state of popups var posX, posY; //coordinates of popups var oPopup; //object to be used as popup content //**** callPopupWeb ************************************************************************************** // the web popups have been converted from the object winHelp popup for the web. // called by: @@Popup text@@ // followed by: function callPopupWeb(eventSrc) { var e= eventSrc; // find the popup
that follows findPopup(e); if (!e.bite_me) positionPopup(e) oPopup.style.visibility = "visible"; // document.focus(e) popupOpen = true; return; } //**** findPopup **************************************************************************************** function findPopup(oX){ var e= oX; var iNextTag; for (var i=1;i= document.body.clientWidth) posX -= (rightlimit - document.body.clientWidth); if (posX < 0) posX = 0; //position popup oPopup.style.top = posY; oPopup.style.left = posX; var pageBottom = document.body.scrollTop + document.body.clientHeight; var popupHeight = oPopup.offsetHeight; if (popupHeight + posY >= pageBottom) { if (popupHeight <= document.body.clientHeight) oPopup.style.top = pageBottom - popupHeight; else oPopup.style.top = document.body.scrollTop; } } //**** closePopup **************************************************************************************** // Close Popup function closePopup() { oPopup.style.visibility = "hidden"; popupOpen = false; return; } //********************************************* GENERAL FUNCTIONS ************************************************ //************************************************************************************************************************** //***ajustImg ************************************************************************************************************* // expands an image to the with of the window or shrinks it to 90px function ajustImg(eventSrc) { var e= eventSrc; var fullWidth= document.body.offsetWidth; fullWidth = fullWidth - 50; if (e.style.pixelWidth==90) e.style.pixelWidth=fullWidth; else e.style.pixelWidth=90; } //** getURL **************************************[used in callShortcut, popNewWindow& loadPage]******** // extracts the file location (CHM::/HTM) URL function getURL(sHREF) { var spaces= /\s/g var eH = unescape(sHREF); eH = eH.replace(spaces,""); var eH_= eH.toLowerCase(); var sParamFILE= ""; var sParamCHM= ""; var iFILE= eH_.lastIndexOf("file="); if (iFILE!=-1){ iEND= iFILE +1; sParamFILE = eH.substring(iFILE+5,eH.length); } var iCHM = eH_.lastIndexOf("chm="); gifwithin = false; if (gifwithin){ gifwithin = false; var con_mmc; var doc_mmc; doc_mmc = " " + document.location; doc_mmc = doc_mmc.toLowerCase(); if (iCHM!=-1){ iEND = iCHM +1; // iEND used by callShortcut sParamCHM = eH.substring(iCHM+4, iFILE); con_mmc = doc_mmc.indexOf(sParamCHM); if (con_mmc != -1){ sParamCHM = ""; iCHM = -1; sParamFILE= sParamCHM+sParamFILE; } } } if (iCHM!=-1){ iEND = iCHM +1; // iEND used by callShortcut sParamCHM = eH.substring(iCHM+4, iFILE); sParamFILE= sParamCHM+"::/"+sParamFILE; } return sParamFILE; } //**************************************************************************************************************************** //******************************************** IE5 PERSISTENCE ************************************************************* //**************************************************************************************************************************** var oTD,iTD; // persistence //****** Persistence for userData ********************************************************************************************* function getChecklistState(){ var pageID= addID(); if (checklist.all== "[object]") { oTD=checklist.all.tags("INPUT"); iTD= oTD.length; } else { printing = true; isPersistent = false; return; } if (iTD == 0){ printing = true; isPersistent = false; return; } // routine added to fix a bug in the ocx 06/14/99 lct = document.location + "."; xax = 10; xax = lct.indexOf("mk:@MSITStore"); if (xax != -1) { lct = "ms-its:" + lct.substring(14,lct.length-1); // alert("before reload : " + document.location); // alert("replace with : " + lct); isPersistent = false; document.location.replace(lct); isPersistent = true; // alert("after reload : " + document.location); } else { checklist.load("oXMLStore"); } // routine added to fix a bug in the ocx 06/14/99 if (checklist.getAttribute("sPersist"+pageID+"0")) for (i=0; i
&&
are found function resizeDiv(){ if (printing == true) return; var oNav = document.all.item("nav"); var oText= document.all.item("text"); if (popupOpen) closePopup(); if (oText == null) return; if (oNav != null){ document.all.nav.style.width= document.body.offsetWidth; document.all.text.style.width= document.body.offsetWidth-4; document.all.text.style.top= document.all.nav.offsetHeight; if (document.body.offsetHeight > document.all.nav.offsetHeight) document.all.text.style.height= document.body.offsetHeight - document.all.nav.offsetHeight; else document.all.text.style.height=0; } } //** addID ************************************************************************************************************* function addID(){ var locID = document.location.href; var iHTM = locID.lastIndexOf(".htm"); var iName=locID.lastIndexOf("/"); locID = locID.substring(iName+1,iHTM); return locID; } //** set_to_print *************** function set_to_print(){ // alert(printing) if (printing == true) return var i; var isIE5 = (navigator.appVersion.indexOf("MSIE 5")>0) || (navigator.appVersion.indexOf("MSIE")>0 && parseInt(navigator.appVersion)> 4); var isIE55 = (navigator.appVersion.indexOf("MSIE 5.5")>0); if (isIE5 && isIE55) isIE5 = false; var isIE6 = (navigator.appVersion.indexOf("MSIE 6")>0); var isIE4 = (navigator.appVersion.indexOf("MSIE 4")>0); if (!isIE5 && !isIE55 && !isIE4 && !isIE6) { isIE6 = true; } // trying printing = true; if (isIE55){ addReusableText(); insertImages_4_print(); } if (isIE6){ addReusableText(); insertImages_4_print(); } // to fix printing isPersistent= (document.all.item("checklist")!=null) && ((isIE5) || (isIE6) || (isIE55)); setPreviousNext(); resizeDiv(); // if (isPersistent) getChecklistState(); if (window.text) { if (!window.text.style){ scroller = "FALSE"; } else { document.all.text.style.height = "auto"; scroller = "TRUE"; } } var thisLoc= document.location.href; thisLoc = thisLoc.indexOf("glossary.htm") if (thisLoc != -1){ return; } // alert("in print") // alert(isIE6) for (i=0; i < document.all.length; i++){ if (document.all[i].id == "expand") { // callExpand(document.all[i]); // no longer needed since the coua_print.css does this now. single = "TRUE"; } if (document.all[i].tagName == "BODY") { document.all[i].scroll = "auto"; } if (document.all[i].tagName == "A" && scroller != "TRUE") { joe = " " + document.all[i].outerHTML joe = joe.toLowerCase(); joe = joe.indexOf("href=") if(joe == -1){ document.all[i].outerHTML = "" + document.all[i].innerHTML + ""; } else { document.all[i].outerHTML = "" + document.all[i].innerHTML + ""; } } } // reset_form(); } //** used to reset a page if needed ******************** function reset_form(){ printing = false; document.location.reload(); } //** on error routine ********************************* function errorHandler() { // alert("Error Handled"); return true; } // ******************************* this function is to help ie55 and ie6 to print these images ****** booking = false; function insertImages_4_print(){ window.onerror = errorHandler // if (isIE6) return // if (isIE55) return if (!printing) booking = true; if (printing == true && booking == true ) { booking = false; return; } var collP = document.all.tags("P"); for (var i=0; i " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="warning") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="caution") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="tip") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="important") collP[i].innerHTML =" " + collP[i].innerHTML; else if (collP[i].className.toLowerCase()=="empty") collP[i].innerHTML =" " + collP[i].innerHTML; if (collP[i].className.toLowerCase()=="reltopics" && rel_gif == "yes") { collP[i].outerHTML =" " + collP[i].outerHTML; } } //alert(printing) //alert(isIE55) //indents for Navigation Tree var collUL = document.all.tags("UL"); if (!printing) { for (var i=0; i" + imgSpace; } // insert SHORTCUT icons if (oAnchor=="shortcut") { document.anchors[i].title= sShortcutTip; if (document.anchors[i].children.tags("IMG")(0) && document.anchors[i].children.tags("IMG")(0).className.toLowerCase() == "shortcut") imgInsert= ""; // not to re-insert when persistent else imgInsert= "" + imgSpace; } // insert POPUP icons else if (oAnchor=="wpopup" || oAnchor=="wpopupweb") document.anchors[i].title= sPopupTip; else if (document.anchors[i].className.toLowerCase()=="popupicon") if (document.anchors[i].children.tags("IMG")(0) && document.anchors[i].children.tags("IMG")(0).className.toLowerCase() == "popup") imgInsert= ""; // not to re-insert when persistent else imgInsert= "" + imgSpace; // insert EXPAND icons else if (oAnchor=="expand") { document.anchors[i].title= sExpandTip; if (document.anchors[i].children.tags("IMG")(0) && document.anchors[i].children.tags("IMG")(0).className.toLowerCase() == "expand") imgInsert= ""; // not to re-insert when persistent else{ if (document.anchors[i].parentElement.offsetLeft == document.anchors[i].offsetLeft) { imgSpace= ""; if (isRTL){ document.anchors[i].parentElement.style.marginRight= "1.5em"; imgStyle=" style=margin-right:'-1.5em'";} else { document.anchors[i].parentElement.style.marginLeft= "1.5em"; imgStyle=" style=margin-left:'-1.5em'";} } imgInsert= "" +imgSpace; } } // insert thumbnail images else if (oAnchor=="thumbnail" || oAnchor=="thumbnailweb"){ var sAltText = document.anchors[i].innerHTML; gifwithin = true; var sThumbnailText = document.anchors[i].title; var oImg = document.anchors[i].href.toLowerCase(); if (oAnchor=="thumbnail") var sThumbnailImg= moniker + getURL(oImg); else var sThumbnailImg = document.anchors[i].href.toLowerCase(); found = sAltText.indexOf("BACKGROUND-COLOR:") if (found != -1) { stop_p = sAltText.indexOf(">"); sAltText = sAltText.substring(stop_p + 1, sAltText.length); stop_p = sAltText.indexOf(""); Highlighted = sAltText.substring(0,stop_p) sAltText = Highlighted + sAltText.substring(stop_p + 7, sAltText.length); } document.anchors[i].outerHTML = "
"+document.anchors[i].outerHTML+"
"; document.anchors[i].innerHTML = " " + sAltText + "

" +sThumbnailText+"

"; if (isRTL) thumbDiv.style.styleFloat= "right"; } document.anchors[i].innerHTML = imgInsert + document.anchors[i].innerHTML; if (isRTL) document.anchors[i].dir="rtl"; } } //** quad method code -- Witten by Randy Feinger, morphed to work inside of shared.js function QuadDocumentMouseOver() { var elem = event.srcElement; // If the first childe of the source element is a radio button and // the parent element isn't grayed, change the cursor to a hand // or back to the original as appropriate. if (elem != null && elem.firstChild != null && elem.firstChild.tagName != null && elem.firstChild.tagName.toLowerCase() == "input" && elem.firstChild.type.toLowerCase() == "radio" && elem.parentElement.className != "indentGray") { if (elem.style.cursor == "hand") elem.style.cursor = "auto"; else elem.style.cursor = "hand"; } } function QuadDocumentClick() { // Don't process clicks on grayed text. if (event.srcElement.parentElement.className == "indentGray") return; // INPUT elements should be wrapped by another element such as a SPAN, DIV, or P. var elem = event.srcElement.firstChild; // If this is a radio button... if (elem != null && elem.tagName != null && elem.tagName.toLowerCase() == "input" && elem.type == "radio") { // check it. elem.checked = true; } else { // Otherwise, set elem to the event's source element. elem = event.srcElement; } // Call OnElementClick() and pass in the source element, and the name token // used to mark a top-level clickable element such as a radio button. OnElementClick(elem, "row1"); } function OnElementClick(srcElem, token) { var elemTagName = srcElem.tagName; // Tag name of the source element. var collElements1 = document.all.item(srcElem.name); // Collection of elements with the same name property as the source element. var n = srcElem.sourceIndex; // The source index of the source element. var elemGroup = srcElem.group; // The (dynamic) group property for the source element. var elemID = srcElem.id; // The source element's ID. var i, j, k; // Loop variables. // If there are no elements with the same name as the source element, or // if the source element isn't part of a group, exit the function. if (collElements1 == null || elemGroup == null || collElements1.length == null) return; // Make sure the source element's name contains the designated token // so we know it's top-level element that should be processed. if (srcElem.name.toLowerCase().indexOf(token) != -1) { // Loop through the collection of for (i = 0; i < collElements1.length; i++) { // Go up one level and then down a level in the element hierarchy to find // the container (parent) element for the clickable sub-elements (radio buttons). var oNextElement = collElements1(i).parentElement.nextSibling; // If there is no such element, get the next element in the collection. if (oNextElement == null || oNextElement.tagName == null) continue; // Get the collection of all the elements within the container element that // have the same tag name as the source element. var collElements2 = oNextElement.all.tags(elemTagName); // Make sure the collection is valid. if (collElements2 == null || collElements2.length == 0) continue; // Loop through the collection of sub-elements within the container element. for (j = 0; j < collElements2.length; j++) { // If the current element in the collection is not the // source element, disable it and make the text gray. if (collElements1(i).sourceIndex != n) { oNextElement.className = "indentGray" collElements2(j).disabled = true; } else // Otherwise, enable the element and make the text black. { oNextElement.className = "indentBlack" collElements2(j).disabled = false; // Set the ID for the checked (selected) element for use below. if (collElements2(j).tagName.toLowerCase() == "input" && collElements2(j).type.toLowerCase() == "radio" && collElements2(j).checked == true) { elemID = collElements2(j).id; } } } } } // Get the collection of all of the elements with the same tag name as that // of the source element. var collElements2 = document.all.tags(elemTagName); // Make sure the collection is valid. if (collElements2 == null || collElements2.length == 0) return; // Loop through the collection of elements. for (i = 0; i < collElements2.length; i++) { // Get the collection of all elements with the same ID as the // current item in the collection. var collAssocElems = document.all(collElements2(i).id); // Make sure the collection is valid. if (collAssocElems == null || collAssocElems.length == 0) continue; // Loop through the collection of same-named elements. for (j = 0; j < collAssocElems.length; j++) { // If the tag name for the current element is different than that for the source element, // and the current element is part of the same group as the source element, // hide or display the element as appropriate. if (collAssocElems(j).tagName != elemTagName && collAssocElems(j).group == elemGroup) { // Hide the element unless the current element's ID matches the ID of the element // that has been checked (selected). collAssocElems(j).style.display = ((collAssocElems(j).id == elemID) ? "block" : "none") } } } }