// Dynamic HTML JavaScript // Copyright © 1998-2012 Adobe Systems Incorporated. All rights reserved. // Version=9.0 // Warning:Do not modify this file. It is generated by Adobe RoboHelp® and changes will be overwritten. //// Segment Begin -- (JavaScript 1.0) /// Section Begin - General and relative topics(JavaScript 1.0) //{{HH_SYMBOL_SECTION var HH_ChmFilename = "C:\\Users\\Jessica\\CSI Software Help\\Software Help\\Main\\CSiBridge\\CSi Bridge Ver 16.chm"; var HH_WindowName = "NewWindow"; var HH_GlossaryFont = ""; var HH_Glossary = "1"; var HH_Avenue = "1"; var HH_ActiveX = true; //}}HH_SYMBOL_SECTION HH_ChmFilename = "C:\\Users\\Jessica\\CSI Software Help\\Software Help\\Main\\CSiBridge\\Bridge_Help_02_26_2017.chm"; //Begin to support previous generic parameters //Get the information about the browser. var gstrBsAgent = navigator.userAgent.toLowerCase(); var gnBsVer = parseInt(navigator.appVersion); var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1); var gbBsKonqueror = (gstrBsAgent.indexOf('konqueror') != -1); var gbBsSafari = (gstrBsAgent.indexOf('safari') != -1); var gbBsIE = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; var gbBsMac = (gstrBsAgent.indexOf('mac') != -1); var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1)); var gbBsSunOS = (gstrBsAgent.indexOf("sunos") != -1); var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2)); var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3)); var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2)); var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3)); var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1))); var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1)); var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4)); var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5)); var gbBsNS7 = false; var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4)); var gbBsIE5 = false; var gbBsIE55 = false; var gbBsIE7 = false; var gbBsOpera6 = false; var gbBsOpera7 = false; var gbBsKonqueror3 = false; var gbSafari3 = false ; var gbAIR = (gstrBsAgent.indexOf('adobeair')!=-1); var gbChrome = (gstrBsAgent.indexOf('chrome')!=-1); var isLocal = document.location.protocol.substring(0, 4) == "file"; var gbChromeLocal = window.chrome && isLocal ; var gbInsideCHM = document.location.href.search("::")>0 && document.location.href.search("chm")>0; var gbBsIsMobile = (gstrBsAgent.indexOf("mobile") != -1); if(gbBsIsMobile == false) { gbBsIsMobile = isTouchDevice(); } function isTouchDevice() { return !!('ontouchstart' in window) ? 1 : 0; } gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;; if (gbBsIE) { if (parseInt(navigator.appVersion) >= 4) { gbBsIE4 = true; if (gbBsIE4) { var nPos = gstrBsAgent.indexOf("msie"); var strIEversion = gstrBsAgent.substring(nPos + 5); var nVersion = parseFloat(strIEversion); if (nVersion >= 5) gbBsIE5 = true; if (nVersion >= 5.5) { if(nVersion >= 7) gbBsIE7 = true; gbBsIE55 = true; } } } } if (gbBsNS6) { var nPos=gstrBsAgent.indexOf("gecko"); if(nPos!=-1) { var nPos2=gstrBsAgent.indexOf("/", nPos); if(nPos2!=-1) { var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1)); if (nVersion>=20020823) gbBsNS7=true; } } } if (gbBsOpera) { var nPos = gstrBsAgent.indexOf("opera"); if(nPos!=-1) { var nVersion = parseFloat(gstrBsAgent.substring(nPos+6)); if (nVersion >= 6) { gbBsOpera6=true; if (nVersion >=7) gbBsOpera7=true; } } } if (gbBsKonqueror) { var nPos = gstrBsAgent.indexOf("konqueror"); if(nPos!=-1) { var nVersion = parseFloat(gstrBsAgent.substring(nPos+10)); if (nVersion >= 3) { gbBsKonqueror3=true; } } } if(gbBsSafari) { var nPos = gstrBsAgent.indexOf("version/"); if(nPos!=-1) { var nVersion = parseFloat(gstrBsAgent.substring(nPos+8,nPos+9)); if (nVersion >= 3) { gbSafari3=true; } } } if(gbChrome) { //for the time being use same tests as safari gbBsSafari = true ; gbSafari3 = true; } function insertAdjacentHTML(obj, where, htmlStr) { if (gbBsIE || gbBsOpera7) { obj.insertAdjacentHTML(where, htmlStr); } else if (gbBsNS6 || gbBsSafari) { var r = obj.ownerDocument.createRange(); r.setStartBefore(obj); var parsedHTML = r.createContextualFragment(htmlStr); switch (where){ case 'beforeBegin': obj.parentNode.insertBefore(parsedHTML,obj); break; case 'afterBegin': obj.insertBefore(parsedHTML,obj.firstChild); break; case 'beforeEnd': obj.appendChild(parsedHTML); break; case 'afterEnd': if (obj.nextSibling){ obj.parentNode.insertBefore(parsedHTML,obj.nextSibling); } else { obj.parentNode.appendChild(parsedHTML); } break; } } } function setAttribute(obj, attr, val) { if (gbBsIE) obj.setAttribute(attr,val); else { if (obj.setAttribute) obj.setAttribute(attr,val); else obj.setProperty(attr,val,null); } }; function getAttribute(obj, attr) { if (gbBsIE) return obj.getAttribute(attr); else { if ((obj.getAttribute)&&(obj.getAttribute(attr))) return obj.getAttribute(attr); else if ((obj.getPropertyValue)&&(obj.getPropertyValue(attr))) return obj.getPropertyValue(attr) ; else if ((obj.getPropertyCSSValue)&&(obj.getPropertyCSSValue(attr))) return obj.getPropertyCSSValue(attr) ; else return null ; } }; // Utilities functions. function BsscHasExtJs() { if( gbBsIE3Before || gbBsNS3Before) return false; return true; } // Register event handler var gBsOnLoads = new Array(); // An array holds all the onload event handler. var gBsOnClicks = new Array(); // An array holds all the onClick event handler. var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler. var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler. var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler. var gbOrignalOnMouseDown = null; function BsscRegisterOnLoad(funcHandler) { var nLength = gBsOnLoads.length; gBsOnLoads[nLength] = funcHandler; } function BsscRegisterOnClick(funcHandler) { var nLength = gBsOnClicks.length; gBsOnClicks[nLength] = funcHandler; } function BsscRegisterOnUnLoad(funcHandler) { var nLength = gBsOnUnLoads.length; gBsOnUnLoads[nLength] = funcHandler; } function BsscRegisterOnMouseOver(funcHandler) { var nLength = gBsOnMouseOvers.length; gBsOnMouseOvers[nLength] = funcHandler; } function BsscRegisterOnMouseOut(funcHandler) { var nLength = gBsOnMouseOuts.length; gBsOnMouseOuts[nLength] = funcHandler; } function BsGeneralOnLoad() { if (!gbBsIE4 && !gbBsNS4) return; // Make everything visible in navigator // if (gbBsNS4) { // // Make some special effects items visible // var arr ; // if (gbBsNS6) // arr = document.getElementsByTagName('*'); // else // arr = document.layers ; // for (var iLayer = 0; iLayer < arr.length; iLayer++) { // arr[iLayer].visibility = "visible"; // arr[iLayer].left = 0 + 'px'; // } // } } // If resize the netscape browser, need to reload it. function BsReDo() { if (innerWidth != origWidth || innerHeight != origHeight) location.reload(); } // End of the local functions. // The following functions are used by the html files. function BSSCOnLoad(event) { if( !BsscHasExtJs() ) return; for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--) gBsOnLoads[nElement](); } function BSSCOnClick(event) { if (!BsscHasExtJs()) return; for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--) gBsOnClicks[nElement](); } function BSSCOnUnload(event) { if (!BsscHasExtJs()) return; for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--) gBsOnUnLoads[nElement](); } function BSSCOnMouseOver(event) { if (!BsscHasExtJs()) return; for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--) gBsOnMouseOvers[nElement](); } function BSSCOnMouseOut(event) { if (!BsscHasExtJs()) return; for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--) { gBsOnMouseOuts[nElement](); } } // End of invocation of the event handle functions. // Add the GereralOnLoad to the onload array. if (typeof(BsscRegisterOnLoad) != "undefined") { BsscRegisterOnLoad(BsGeneralOnLoad); } if (gbBsNS4&&!gbBsNS6) { origWidth = innerWidth; origHeight = innerHeight; onresize = BsReDo; } //End to support previous generic parameters //Begin to support previous HHActiveX invoking function BsHHActivateComponents() { if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0]))) { var objBody = getElementsByTag(document,"BODY")[0]; if( typeof(objBody) == "object" ) { insertAdjacentHTML(objBody, "beforeEnd", ''); if (HHComponentActivator.object) HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue); } } } function BsHHActivXOnLoad() { if( gbBsIE4 ) BsHHActivateComponents(); } if( typeof(BsscRegisterOnLoad) != "undefined" ) { BsscRegisterOnLoad(BsHHActivXOnLoad); } //End to support previous HHActiveX invoking //Begin to support previous relative topics //If webHelp needs Related Topics DHTMLcode, it's supposed to add it here var gbPopupMenuTimeoutExpired = false; var gbInPopupMenu = false; var gbPopupMenuTopicList = null; var gOlddocumentClick = null; ////////////////////////////////////////////////////////////////////////////////////////// // // Popup Menu code // ////////////////////////////////////////////////////////////////////////////////////////// var g_bIsPopupMenuInit = false; function _WritePopupMenuLayer() { if (!g_bIsPopupMenuInit) { if (gbBsNS4&&!gbBsNS6) { //Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page... document.write("
"); } else{ document.write(""); if (!(gbBsNS4&&!gbBsNS6)) { document.write(""); } } g_bIsPopupMenuInit = true; } } //Seek for the bsscright frame function _SeekFrameByName( cRoot, strName ) { if( cRoot == null ) return null; if( cRoot.frames == null ) return null; if( cRoot.frames[strName] != null ) return cRoot.frames[strName]; for (var i=0; i'; } else { strMenu += '' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + ''; } strMenu += ''; if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) { i += 2; } else { i += 1; } } strMenu += ""; if (gbBsMac) { // totally hack. because ie5 in mac need something. is one of them. mac is mad. strMenu +="
"; } var layerPopup = null; var stylePopup = null; var nEventX = 0; var nEventY = 0; var nWindowWidth = 0; var nPopupHeight = 0; var nPopupWidth = 0; var e = fn_arguments[0]; if (typeof (window.event) != 'undefined' && typeof (window.event.clientX) != 'undefined' && typeof (window.event.clientX) == 'number') { nEventX = window.event.clientX; nEventY = window.event.clientY; } else { if (typeof (e.clientX) != 'undefined') { nEventX = e.clientX; nEventY = e.clientY; } else if (typeof (e.pageX) != 'undefined') { nEventX = e.pageX; nEventY = e.pageY; nEventX -= getScrollLeft(); nEventY -= getScrollTop(); } } _BSPSGetClientSize(); var bFoundBrowser = true; if (gbBsIE4 || gbBsOpera7) { layerPopup = getElement("PopupMenu"); layerPopup.innerHTML = strMenu; stylePopup = layerPopup.style; nPopupHeight = layerPopup.scrollHeight; nPopupWidth = layerPopup.scrollWidth; if (gbBsMac) { nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup. } } else if (gbBsNS6 || gbBsKonqueror3 || gbBsSafari) { layerPopup = getElement("PopupMenu"); layerPopup.style.visibility = "hidden"; layerPopup.innerHTML = strMenu; nPopupHeight = layerPopup.offsetHeight; nPopupWidth = layerPopup.offsetWidth; } else if (gbBsNS4) { layerPopup = document.layers.PopupMenu; layerPopup.visibility = "hide"; stylePopup = layerPopup.document; stylePopup.write(strMenu); stylePopup.close(); nPopupHeight = layerPopup.clip.height; nPopupWidth = layerPopup.clip.width; } else bFoundBrowser = false; if (bFoundBrowser) { if (nEventY + nPopupHeight + 20 < gBsClientHeight) { nEventY += 20; } else { nEventY = gBsClientHeight - nPopupHeight - 20; } if (nEventX + nPopupWidth + 20 < gBsClientWidth) { nEventX += 20; } else { nEventX = gBsClientWidth - nPopupWidth - 20; } var par = layerPopup.offsetParent; var offX = 0, offY = 0; if (typeof(par) != 'undefined' && par) { offX = GetXOffset(par); offY = GetYOffset(par); } nEventX += getScrollLeftElement(par); nEventX -= offX; nEventY += getScrollTopElement(par); nEventY -= offY; } if (gbBsIE4 || gbBsOpera7) { stylePopup.top = nEventY; if (typeof (stylePopup.top) != 'number' ) { stylePopup.top = nEventY + "px"; } stylePopup.left = nEventX; if (typeof (stylePopup.left) != 'number' ) { stylePopup.left = nEventX + "px"; } stylePopup.visibility = "visible"; if (!gOlddocumentClick && document.onclick) gOlddocumentClick = document.onclick; document.onclick = PopupMenu_HandleClick; } else if (gbBsNS6 || gbBsKonqueror3 || gbBsSafari) { if (gbBsNS6 || gbChrome || gbSafari3) layerPopup.style.top = nEventY + "px"; else layerPopup.style.top = nEventY; if (gbBsNS6 || gbChrome || gbSafari3) layerPopup.style.left = nEventX + "px"; else layerPopup.style.left = nEventX; // set again to avoid the stupid frash in netscape 6. layerPopup.innerHTML = strMenu; layerPopup.style.visibility = "visible"; //window.captureEvents(Event.MOUSEDOWN); if (!gOlddocumentClick && document.onclick) gOlddocumentClick = document.onclick; window.onclick = PopupMenu_HandleClick; } else if (gbBsNS4) { layerPopup.left = nEventX; layerPopup.top = nEventY; layerPopup.visibility = "visible"; window.captureEvents(Event.MOUSEDOWN); if (!gOlddocumentClick && document.onmousedown) gOlddocumentClick = document.onmousedown; window.onmousedown = PopupMenu_HandleClick; } if(window.addEventListener) { var popupDivElem = getElement("PopupMenu"); if(typeof(popupDivElem) != 'undefined') popupDivElem.addEventListener("touchstart", onPopupDivTouched, false); window.document.addEventListener("touchstart", onPopupParentTouched, false); } window.gbInPopupMenu = true; window.gbPopupMenuTimeoutExpired = false; setTimeout("PopupMenu_Timeout();", 100); return false; } function PopupMenu_Timeout() { window.gbPopupMenuTimeoutExpired = true; } function PopupMenu_Over(e) { if (gbBsIE4||gbBsOpera7) e.srcElement.className = "PopupOver"; else if (gbBsNS6) e.target.parentNode.className = "PopupOver"; return; } function PopupMenu_Out(e) { if (gbBsIE4||gbBsOpera7) e.srcElement.className = "PopupNotOver"; else if (gbBsNS6) e.target.parentNode.className = "PopupNotOver"; return; } function onPopupDivTouched(e) { if(typeof(e) != 'undefined' && e) e.stopPropagation(); } function onPopupParentTouched(e) { if(window.removeEventListener) { var popupDivElem = getElement("PopupMenu"); if(typeof(popupDivElem) != 'undefined') popupDivElem.removeEventListener("touchstart", onPopupDivTouched, false); window.removeEventListener("touchstart", onPopupParentTouched, false); } PopupMenu_HandleClick(e); } function PopupMenu_HandleClick(e) { if (window.gbPopupMenuTimeoutExpired) { window.gbInPopupMenu = false; if (gbBsNS4 && !gbBsNS6) { window.releaseEvents(Event.MOUSEDOWN); } var layerPopup = null; if (gbBsNS4&&!gbBsNS6) { layerPopup = document.layers.PopupMenu; layerPopup.visibility = "hide"; } else { layerPopup = getElement("PopupMenu"); layerPopup.style.visibility = "hidden"; } if (gOlddocumentClick) { if (gbBsNS4 && !gbBsNS6) document.onmousedown = gOlddocumentClick; else document.onclick = gOlddocumentClick; } } return; } function BSSCPopup_ClickMac() { if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7)) { var bClickOnAnchor = false; var el; if ((window.event != null) && (window.event.srcElement != null)) { el = window.event.srcElement; while (el != null) { if ((el.tagName == "A") || (el.tagName == "AREA")) { bClickOnAnchor = true; break; } if (el.tagName == "BODY") { break; } el = getParentNode(el); } } if (BSSCPopup_IsPopup()) { if (!bClickOnAnchor) { parent.window.gPopupWindow = null; self.close(); } } else { bClosePopupWindow = true; if ((bClickOnAnchor) && (el.href) && ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1))) { bClosePopupWindow = false; } if (bClosePopupWindow) { if (window.gPopupWindow != null && !window.gPopupWindow.closed ) { window.gPopupWindow.close(); } } } } } function BsPopupOnClick() { if (!gbBsIE4 && !gbBsOpera7) return; BSSCPopup_ClickMac(); } function _BSSCOnError(message) { if(-1 != message.indexOf("denied") || -1 != message.indexOf("Object required")) return true; } //End to support previous relative topics /// Section End - General and relative topics (JavaScript 1.0) /// Section Begin - Popup (JavaScript 1.0) //Begin to support previous popup functions //variables used to isolate the browser type var gBsStyVisShow = null; var gBsStyVisHide = null; var gBsClientWidth = 640; var gBsClientHeight = 480; // here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others. var gBRateH_W = 0.618; // 1.618 Golden cut. var gBMaxXOfParent = 0.8; var gBMaxYOfParent = 0.8; var gBscrollHeight = 16; var gBscrollWidth = 16; var gBpermitXDelta = 3; var gBpermitYDelta = 3; var arrayPopupURL = new Array(); var arrayAbsPopupURL = new Array(); var arrayIntervalId = new Array(); var arrayDirty = new Array(); function getBRateH_W() { return 0.618 ; } function getBscrollWidth() { return 16 ; } function getBscrollHeight() { return 16 ; } function getBMaxXOfParent() { return 0.8 ; } function getBMaxYOfParent() { return 0.8 ; } function setIntervalID(nIndex,id) { arrayIntervalId[nIndex] = id; } function getIntervalID(nIndex) { if (nIndex == -1 || arrayIntervalId.length <= nIndex) return -1; else return arrayIntervalId[nIndex]; } function setAbsPopupURL(nIndex, strURL) { arrayAbsPopupURL[nIndex] = strURL; } function getAbsPopupURL(nIndex) { if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null; else return arrayAbsPopupURL[nIndex]; } function getPopupURL(nIndex) { if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null; else return arrayPopupURL[nIndex]; } function getPopupID(nIndex) { return gstrPopupID + nIndex; } function getPopupShadowID(nIndex) { return gstrPopupShadowID + nIndex; } function getPopupTopicID(nIndex) { return gstrPopupTopicID + nIndex; } function getPopupIFrameID(nIndex) { return gstrPopupIFrameID + nIndex; } function getPopupIFrameName(nIndex) { return gstrPopupIFrameName + nIndex; } function getPopupTopicStyle(nIndex) { return getElement(getPopupTopicID(nIndex)).style; } function getPopupShadowStyle(nIndex) { return getElement(getPopupShadowID(nIndex)).style; } function getPopupIFrame(nIndex) { if(gbAIR) { return window.frames[getPopupIFrameName(nIndex)]; } else { if (gbBsNS6||gbSafari3) return eval("window.frames['" + getPopupIFrameName(nIndex) + "']"); else return eval("document.frames['" + getPopupIFrameName(nIndex) + "']"); } } function getPopupDivStyle(nIndex) { return getElement(getPopupID(nIndex)).style; } function getPopupIFrameStyle(nIndex) { return getElement(getPopupIFrameID(nIndex)).style; } function findDiv(strURL) { for (var i = 0; i < arrayPopupURL.length; i ++ ) { if (arrayPopupURL[i] == strURL) { return i; } } return -1; } var gnToken = -1; function takeToken() { gnToken ++; if (gnToken > 10000) gnToken = 0; return gnToken; } function IsValidToken(nToken) { return (gnToken == nToken); } function addDiv(strURL) { for (var i = 0; i < arrayPopupURL.length; i ++) { if (arrayPopupURL[i] == null) { arrayPopupURL[i] = strURL; return i; } } arrayPopupURL[i] = strURL; arrayDirty[i] = true; return i; } function setDirty() { for (var i = 0; i < arrayPopupURL.length; i ++ ) arrayDirty[i] = true; } function IsDirty(nIndex) { if (nIndex == -1) return true; else if (arrayDirty.length > nIndex) return arrayDirty[nIndex]; else return true; } function hideAll() { for (var i = 0; i < arrayPopupURL.length; i ++ ) { getPopupDivStyle(i).visibility = gBsStyVisHide; getPopupIFrameStyle(i).visibility = gBsStyVisHide; if(gbBsIE) removeThis(document.all(getPopupID(i))); } if(gbBsIE) arrayPopupURL.length = 0; } function getCurrentPopupIFrame() { for (var i = 0; i < arrayPopupURL.length; i ++) if (getPopupDivStyle(i).visibility == gBsStyVisShow) return getPopupIFrame(i); return null; } function setClear(nIndex) { if (nIndex != -1) arrayDirty[nIndex] = false; } function _BSSCCreatePopupDiv(strURL) { var nIndex = findDiv(strURL); if (nIndex == -1 ) { nIndex = addDiv(strURL); BsPopup_CreateDiv(nIndex); } else { if (IsDirty(nIndex)) { if("object" == typeof(getPopupIFrame(nIndex).document)) getPopupIFrame(nIndex).document.location.href = strURL; } } return nIndex; } //Here is the browser type function _BSPSGetBrowserInfo() { if (gbBsNS4&&!gbBsNS6) { gBsStyVisShow = "show"; gBsStyVisHide = "hide"; } else { gBsStyVisShow = "visible"; gBsStyVisHide = "hidden"; } } _BSPSGetBrowserInfo(); //Get client size info function _BSPSGetClientSize() { if( typeof( window.innerWidth ) == 'number' ) { gBsClientWidth = innerWidth; gBsClientHeight = innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { gBsClientWidth = document.documentElement.clientWidth; gBsClientHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { gBsClientWidth = document.body.clientWidth; gBsClientHeight = document.body.clientHeight; } } var gstrPopupID = 'BSSCPopup'; var gstrPopupShadowID = 'BSSCPopupShadow'; var gstrPopupTopicID = 'BSSCPopupTopic'; var gstrPopupIFrameID = 'BSSCPopupIFrame'; var gstrPopupIFrameName = 'BSSCPopupIFrameName'; var gstrPopupSecondWindowName = 'BSSCPopup'; var gPopupWindow = null; var gnPopupClickX = 0; var gnPopupClickY = 0; var gnPopupScreenClickX = 0; var gnPopupScreenClickY = 0; var gbPopupTimeoutExpired = false; function DHTMLPopupSupport() { if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7 || gbSafari3||gbAIR) { return true; } return false; } function BSSCPopup_IsPopup() { if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) { return true; } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) { return true; } else { return false; } } // If there is a hyperlink in a popup window, display the hyperlink in // the original window. (bsscright) //commenting this as we are opening popup links in its parent //also in multiscreen bsscright is not the the name of topic frame, relevant only in webhelp /*if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) { document.write(""); }*/ // Local functions. function BsPopup_CreateDiv(nIndex) { if(!DHTMLPopupSupport()) return; // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone. var strPopupDiv = ""; var objBody = getElementsByTag(document, "BODY")[0]; if( typeof(objBody) != "object" ) return; insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv); } function handleLoadNS() { if (this.id) { var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length)); BSSCPopup_PostWork(nIndex); } } function BSSCPopup_PostWork(nIndex) { getPopupDivStyle(nIndex).visibility = gBsStyVisShow; getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow; setClear(nIndex); window.gbPopupTimeoutExpired = true; try{ BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document); if (gbBsNS6) getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false); else getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked; }catch(e){} if (!gbOrignalOnMouseDown && document.onmousedown) gbOrignalOnMouseDown = document.onmousedown; if (gbChrome || gbBsNS6) document.addEventListener("mousedown", BSSCPopupParentClicked,false); else document.onmousedown = BSSCPopupParentClicked; } function BSSCPopup_Timeout(nIndex, nToken) { if (!IsValidToken(nToken)) return; if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") && (getPopupIFrame(nIndex).document.body != null))) { BSSCPopup_PostWork(nIndex); } else { setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100); } } // VH 08/10/00 // do not change target to parent if the href is using javascript function BSSCPopup_ChangeTargettoParent(tagsObject) { var collA = getElementsByTag(tagsObject, "A"); BSSCPopup_ChangeTargettoParent2(collA); var collIMG = getElementsByTag(tagsObject,"IMG"); BSSCPopup_ChangeTargettoParent2(collIMG); } function BSSCPopup_ChangeTargettoParent2(colls) { if (colls != null) { for (var j = 0; j < colls.length; j ++ ) { var strtemp = colls[j].href; if (strtemp) { strtemp = strtemp.toLowerCase(); if (strtemp.indexOf("javascript:") == -1) if (colls[j].target == "") colls[j].target = "_parent"; } } } } function BSPSPopupTopicWinHelp(strURL) { _BSSCPopup(strURL); return; } function DelayBSSCPopup_AfterLoad(nIndex ,nToken ,cuswidth ,cusheight ) { //before doing any thing clear the interval function var intervalID = getIntervalID(nIndex); if(intervalID!=-1) clearInterval(intervalID); BSSCPopup_AfterLoad(nIndex ,nToken ,cuswidth ,cusheight ); } function _BSSCPopup(strURL, width, height) { var cuswidth = 0; var cusheight = 0; if ("undefined" != typeof(width) && "undefined" != typeof(height)) { cuswidth = width; cusheight= height; } if (DHTMLPopupSupport()) { if(!gbAIR && !gbInsideCHM) rhPopupEx.createPopup(strURL, width, height); else { var nToken = takeToken(); // take token first. var nIndex = _BSSCCreatePopupDiv(strURL, nToken, cuswidth, cusheight); window.gbPopupTimeoutExpired = false; var ntWidth = gBsClientWidth; var ntHeight = gBsClientHeight; _BSPSGetClientSize(); if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) { setDirty(); } if (IsDirty(nIndex)) { if(gbAIR) { var tempappTimer = setInterval(function(){DelayBSSCPopup_AfterLoad(nIndex ,nToken ,cuswidth ,cusheight )}, 400); setIntervalID(nIndex,tempappTimer); } else { if (gbBsMac) { setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400); } else { setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100); } } } else { MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight); } } } else { _BSSCPopup2(strURL, cuswidth, cusheight); } return; } if (gbBsIE55) { var ehlpdhtm_fOldBefureUnload = window.onbeforeunload; var gnBsUnload=0; window.onbeforeunload = window_BUnload; } function window_BUnload() { gnBsUnload++; if (gnBsUnload>1) return; for (var i = 0; i < arrayPopupURL.length; i ++) removeThis(document.all(getPopupID(i))); arrayPopupURL.length = 0; if (ehlpdhtm_fOldBefureUnload) ehlpdhtm_fOldBefureUnload(); } function _BSSCPopup2(strURL, width, height) { if (gbBsOpera6&&gbBsMac) { var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName); wmTemp.close(); setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100); } else _BSSCPopup3(strURL, width, height); } function _BSSCPopup3(strURL, width, height) { if (window.name == gstrPopupSecondWindowName) { window.location = strURL; } else { if (!gbBsMac || !gbBsNS4) { BSSCHidePopupWindow(); } var nX = 0; var nY = 0; var nHeight = 300; var nWidth = 400; if (width > 0 && height > 0) { nHeight = height; nWidth = width; } _BSPSGetClientSize(); nX = window.gnPopupScreenClickX; nY = window.gnPopupScreenClickY; if (nY + nHeight + 40 > screen.availHeight) { nY = screen.availHeight - nHeight - 40; } if (nX + nWidth + 40 > screen.availWidth) { nX = screen.availWidth - nWidth - 40; } // Launch a separate window var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes"; if (gbBsNS) { if (gbBsNS6) { strParam += ",Height=" + nHeight + "px,Width=" + nWidth+"px"; strParam += ",screenX=" + nX + ",screenY=" + nY; strParam += ",dependent=yes"; } else { strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth; strParam += ",screenX=" + nX + ",screenY=" + nY; strParam += ",dependent=yes"; } } else { strParam += ",height=" + nHeight + ",width=" + nWidth; strParam += ",left=" + nX + ",top=" + nY; } if (gbBsSafari) { if (window.gPopupWindow) window.gPopupWindow.close(); window.gPopupWindow = window.open(strURL, "", strParam); window.gPopupWindow.name = gstrPopupSecondWindowName; window.gPopupWindow.moveTo(nX, nY); window.gPopupWindow.document.location.reload(); } else { var wmTemp=null; if (gbBsKonqueror3) { if (window.gPopupWindow) window.gPopupWindow.close(); } if (gbBsOpera&&gbBsMac) { wmTemp= window.open(document.location.href, "Temp", strParam); } window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam); if (!gbBsIE) window.gPopupWindow.focus(); if (wmTemp) wmTemp.close(); } if (gbBsNS4) setEventHandle(); else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) setTimeout("setPopupFocus();", 100); } return; } function setEventHandle() { window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR); window.gPopupWindow.onclick = NonIEPopup_HandleClick; window.gPopupWindow.onblur = NonIEPopup_HandleBlur; } function setPopupFocus() { window.gPopupWindow.focus(); } function NonIEPopup_HandleBlur(e) { window.gPopupWindow.focus(); } function NonIEPopup_HandleClick(e) { // Because navigator will give the event to the handler before the hyperlink, let's // first route the event to see if we are clicking on a Popup menu in a popup. document.routeEvent(e); // If a popup menu is active then don't do anything with the click if (window.gPopupWindow.gbInPopupMenu) { window.gPopupWindow.captureEvents(Event.CLICK); window.gPopupWindow.onclick = NonIEPopup_HandleClick; return false; } // Close the popup window if(e.target.href) { if(e.target.href.indexOf("javascript:")==-1) { if (e.target.target=="") window.location.href = e.target.href; else window.open(e.target.href, e.target.target); this.close(); } } else this.close(); return false; } function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight) { if (!window.getPopupIFrame(nIndex).document) { _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight); return; } if (!IsValidToken(nToken)) return; if (gbSafari3||gbAIR) { setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); return; } if (gbBsNS6) { setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. setTimeout("BSSCPopup_ResizeAfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); return; } if ((window.getPopupIFrame(nIndex).document.readyState == "complete") && (window.getPopupIFrame(nIndex).document.body != null)) { if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe. window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); } else { setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); } } else { setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); } } function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight) { if (window.gbPopupTimeoutExpired) return; if (!IsValidToken(nToken)) return; getPopupDivStyle(nIndex).visibility = gBsStyVisHide; getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide; if(gbBsIE) { //fix for Popup Blank issue getPopupIFrameStyle(nIndex).visibility = gBsStyVisShow; getPopupDivStyle(nIndex).visibility = gBsStyVisShow; } // Determine the width and height for the window _BSPSGetClientSize(); var size = new BSSCSize(0, 0); if (cuswidth <= 0 || cusheight <= 0) BSSCGetContentSize(window.getPopupIFrame(nIndex), size); else { size.x = cuswidth; size.y = cusheight; } // Determine the width and height for the window var nWidth = size.x; var nHeight = size.y; // for small popup size, we should allow any size. // The popup size should be ok if bigger than 0 if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong. //make the width and height same for all the browsers now nWidth = nWidth + 22; nHeight = nHeight + 10; getPopupDivStyle(nIndex).width = nWidth+ "px" ; getPopupDivStyle(nIndex).height = nHeight+ "px" ; getPopupShadowStyle(nIndex).width = nWidth + "px" ; getPopupShadowStyle(nIndex).height = nHeight + "px" ; getPopupTopicStyle(nIndex).width = nWidth + "px" ; getPopupTopicStyle(nIndex).height = nHeight + "px" ; getPopupIFrameStyle(nIndex).width = nWidth + "px" ; getPopupIFrameStyle(nIndex).height = nHeight + "px" ; if (gbBsIE55 || gbBsNS6 || gbSafari3||gbAIR) { getPopupIFrameStyle(nIndex).top = 0; getPopupIFrameStyle(nIndex).left = 0; } var strURL = getPopupURL(nIndex); if (strURL.indexOf("#") != -1&&gbBsNS6) getPopupIFrame(nIndex).location.reload(); else if (strURL.indexOf("#") != -1||gbBsNS6) getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5. MoveDivAndShow(nIndex, nToken, cuswidth, cusheight); } function getScrollLeft() { if( typeof( window.pageXOffset) == 'number' ) return window.pageXOffset ; else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) return document.body.scrollLeft ; else if( document.documentElement && document.documentElement.scrollLeft ) return document.documentElement.scrollLeft; else return 0 ; } function getScrollTop() { if( typeof( window.pageYOffset) == 'number' ) return window.pageYOffset ; else if( document.body && document.body.scrollTop ) return document.body.scrollTop ; else if( document.documentElement && document.documentElement.scrollTop ) return document.documentElement.scrollTop; else return 0 ; } function getScrollLeftElement(el) { var x = 0; while (el && typeof (el.scrollLeft) == 'number') { if (el == document.body) { var top = document.body.scrollLeft || document.documentElement.scrollLeft; x += top; } else x += el.scrollLeft; el = el.offsetParent; } return x; } function getScrollTopElement(el) { var x = 0; while (el && typeof (el.scrollTop) == 'number') { if (el == document.body) { var top = document.body.scrollTop || document.documentElement.scrollTop; x += top; } else x += el.scrollTop; el = el.offsetParent; } return x; } function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight) { if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again. window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); if(gbAIR) { BSSCPopup_AfterLoad(nIndex ,nToken ,cuswidth ,cusheight ); } else setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); return; } // Determine the position of the window var nClickX = window.gnPopupClickX; var nClickY = window.gnPopupClickY; var nTop = 0; var nLeft = 0; var nWidth = parseInt(getPopupDivStyle(nIndex).width); var nHeight = parseInt(getPopupDivStyle(nIndex).height); if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) { nTop = nClickY + 10; } else { nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20; } if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) { nLeft = nClickX; } else { nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 20; } if(!gbBsIE55) { if (nTop < getScrollTop()) nTop = getScrollTop() + nTop; if (nLeft< getScrollLeft()) nLeft = getScrollLeft() + nLeft; if(nTop+nHeight>gBsClientHeight + getScrollTop()) { nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20; } } if (isNaN(nLeft)) getPopupDivStyle(nIndex).left = nClickX + "px"; else getPopupDivStyle(nIndex).left = nLeft+ "px"; if (isNaN(nTop)) getPopupDivStyle(nIndex).top = nClickY + "px"; else getPopupDivStyle(nIndex).top = nTop + "px"; // Set the location of the background blocks getPopupShadowStyle(nIndex).left = 6 + "px"; getPopupShadowStyle(nIndex).top = 6 + "px"; if (gbBsIE55) { getPopupShadowStyle(nIndex).left = 4; getPopupShadowStyle(nIndex).top = 4; } if (gbBsMac&&gbBsIE4) { // Total hack on the iMac to get the IFrame to position properly getPopupIFrameStyle(nIndex).pixelLeft = 100; getPopupIFrameStyle(nIndex).pixelLeft = 0; // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it getPopupIFrame(nIndex).window.BSSCOnLoad(); } if(gbChrome) { BSSCPopup_PostWork(nIndex); } else if (gbBsNS6&&IsDirty(nIndex)) getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false); else BSSCPopup_Timeout(nIndex , nToken ); return; } function BSSCSize(x, y) { this.x = x; this.y = y; } function BSSCGetContentSize(thisWindow, size) { if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4 && !gbSafari3 && !gbAIR) return; if ((gbBsMac&&gbBsIE4)||gbBsOpera7) { size.x = 320; size.y = 180; return; } // Resize the width until it is wide enough to handle the content // The trick is to start wide and determine when the scrollHeight changes // because then we know a scrollbar is necessary. We can then go back // to the next widest size (for no scrollbar) var ClientRate = gBsClientHeight / gBsClientWidth; var GoldenSize = new BSSCSize(0,0); GoldenSize.x = gBsClientWidth * getBMaxXOfParent(); GoldenSize.y = gBsClientHeight *getBMaxYOfParent() ; if (ClientRate > gBRateH_W) { GoldenSize.y = GoldenSize.x * gBRateH_W; } else { GoldenSize.x = GoldenSize.y / gBRateH_W; } // Try to using parent specified max x. var x = 0; var maxgoldx = GoldenSize.x; var maxx = gBsClientWidth * getBMaxXOfParent(); // This double resize causes the document to re-render (and we need it to) if (!gbBsIE5 && !gbChrome && !gbAIR) thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4. if(!gbAIR) { thisWindow.resizeTo(1, 1); thisWindow.resizeTo(maxgoldx, getScrollHeight(thisWindow) + getBscrollHeight()); } var miny = getScrollHeight(thisWindow) + getBscrollHeight(); if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can { if(gbBsIE55) { thisWindow.resizeTo(maxx , getScrollHeight(thisWindow) + getBscrollHeight()); } miny = getScrollHeight(thisWindow) + getBscrollHeight(); maxy = gBsClientHeight * getBMaxYOfParent(); if (miny > maxy) { // the popup must have a scroll, OK let it be. miny = maxy; size.x = maxx; size.y = maxy; thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little. } else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent. size.y = miny; // downsize from maxx , now I try to using binary divide. x = maxx; deltax = -maxx/2; //j = 0; while (true) { x = x + deltax; if(!gbAIR) thisWindow.resizeTo(x, miny); diffy = getScrollHeight(thisWindow) + getBscrollHeight() - x * ClientRate; if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter deltax = Math.abs(deltax) /2; else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter deltax = -Math.abs(deltax) /2; else // the y is close enough to wanted. break; if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. break; } size.x = getScrollWidth(thisWindow); //+ gBscrollWidth; size.y = getScrollHeight(thisWindow);// + gBscrollHeight; thisWindow.document.body.scroll = 'no'; } } else { if (getScrollWidth(thisWindow) > maxgoldx) { size.x = maxx; size.y = miny; thisWindow.document.body.scroll = 'yes'; } else { // downsize from maxgoldx , now I try to using binary divide. x = maxgoldx; deltax = -maxgoldx/2; while (true) { x = x + deltax; if(!gbAIR) thisWindow.resizeTo(x, miny); diffy = getScrollHeight(thisWindow) + getBscrollHeight() - x * getBRateH_W(); if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter deltax = Math.abs(deltax) /2; else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter deltax = -Math.abs(deltax) /2; else // the y is close enough to wanted. break; if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. break; } size.x = getScrollWidth(thisWindow); size.y = getScrollHeight(thisWindow) ; thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little. } } if (gbBsNS6) size.y = size.y + 20 ; if(!gbAIR) thisWindow.resizeTo(size.x, size.y); return; } function getScrollWidth(thisWindow) { var w = thisWindow.document.body.scrollWidth ? thisWindow.document.body.scrollWidth : thisWindow.window.pageXOffset ; return w ? w : 0; } function getScrollHeight(thisWindow) { var h = thisWindow.document.body.scrollHeight ? thisWindow.document.body.scrollHeight : thisWindow.window.pageYOffset ; return h ? h : 0; } function BSSCPopupParentClicked() { if (!window.gbPopupTimeoutExpired) { return false; } document.onmousedown = gbOrignalOnMouseDown; // Simply hide the popup hideAll(); window.gbPopupTimeoutExpired = false; return true; } function isInsideHyperLink(obj) { if (obj&&obj!=getParentNode(obj)) { if (obj.tagName=="A"||obj.tagName=="IMG" || obj.tagName=="VIDEO") return true; else return isInsideHyperLink(getParentNode(obj)); } else return false; } function BSSCPopupClicked(e) { if (!window.gbPopupTimeoutExpired) { return false; } var popupIFrame = getCurrentPopupIFrame(); if (popupIFrame == null) { return true; } if (gbBsIE4 && (!((popupIFrame.window.event != null) && (popupIFrame.window.event.srcElement != null) && isInsideHyperLink(popupIFrame.window.event.srcElement)))) { document.onmousedown = gbOrignalOnMouseDown; // Simply hide the popup hideAll(); window.gbPopupTimeoutExpired = false; return true; } else if (!gbAIR && (gbBsNS6 || gbChrome) && (!((e != null) && (e.target!= null) && isInsideHyperLink(e.target)))) { document.removeEventListener("mousedown", BSSCPopupParentClicked,false); if(gbOrignalOnMouseDown) document.addEventListener("mousedown", gbOrignalOnMouseDown,false); // Simply hide the popup hideAll(); window.gbPopupTimeoutExpired = false; return true; } } //trace the mouse over's position for hotspot function BSPSPopupOnMouseOver(event) { rhPopupEx.setClickPosition(event.clientX, event.clientY); if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) { window.gnPopupClickX = event.clientX + getScrollLeft(); window.gnPopupClickY = event.clientY + getScrollTop(); window.gnPopupScreenClickX = event.screenX; window.gnPopupScreenClickY = event.screenY; } else if (gbBsSafari) { window.gnPopupClickX = event.clientX + getScrollLeft(); window.gnPopupClickY = event.clientY + getScrollTop(); window.gnPopupScreenClickX = event.screenX + window.screenX; window.gnPopupScreenClickY = event.screenY + window.screenY; } else if (gbBsNS4) { window.gnPopupClickX = event.pageX - window.pageXOffset; window.gnPopupClickY = event.pageY - window.pageYOffset; window.gnPopupScreenClickX = event.screenX - window.pageXOffset; window.gnPopupScreenClickY = event.screenY - window.pageYOffset; } } function BSSCHidePopupWindow() { if (window.gPopupWindow != null) { if (gbBsNS4) { if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) { window.gPopupWindow.close(); window.gPopupWindow = null; } } } return; } // Add the PopupOnClick to the onclick array. if (typeof(BsscRegisterOnClick) != "undefined") { BsscRegisterOnClick(BsPopupOnClick); } //End to support previous popup functions /// Section End - Popup (JavaScript 1.0) /// Section Begin - Embedded Stub (JavaScript 1.0) function BSSCCreatePopupDiv() { return; } function WritePopupMenuLayer() { if (BsscHasExtJs()) {_WritePopupMenuLayer();} } function BSSCPopup(strURL, width, height) { var re = new RegExp("'", 'g'); strURL = strURL.replace(re, "%27"); if (BsscHasExtJs()) { _BSSCPopup(strURL, width, height); }else{ //Create a temporary window first to ensure the real popup comes up on top var wndTemp = null; if (!gbBsNS3) { wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4"); } // Create the real popup window var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400"); // Close the temporary if (!gbBsNS3) { wndTemp.close(); } else { wndPopup.focus(); } } } var gbWndTemp = null, gbWndPopupLinks = null; var gbstrParaTotal = ""; function PopupMenu_Invoke() { if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function') { if (Number(gsSkinVersion) > 2 && IsFlashSupported()) { return wfRelatedTopic(PopupMenu_Invoke.arguments); } } if (BsscHasExtJs()) { return _PopupMenu_Invoke(PopupMenu_Invoke.arguments); } if (gbBsNS3Before || gbBsIE3Before ) { var argLen = PopupMenu_Invoke.arguments.length; if (argLen < 5) { window.document.location.href = PopupMenu_Invoke.arguments[3]; return false; } gbWndTemp = null; gbWndPopupLinks = null; gbstrParaTotal = ""; for (var i = 0; i < (argLen - 2) / 2; i++) { var strParaLine = ""; if (gbBsNS2){ strParaLine += "" strParaLine += PopupMenu_Invoke.arguments[2 * i + 2]; strParaLine += ""; } else { strParaLine += ""); if (gbBsNS2) { gbWndPopupLinks.document.write(""); } else { //YJ: IE301,302 and NS3.x works fine gbWndPopupLinks.document.write("<"); gbWndPopupLinks.document.write("script>"); gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}"); gbWndPopupLinks.document.write("<"); gbWndPopupLinks.document.write("/script>"); } gbWndPopupLinks.document.write("<"); gbWndPopupLinks.document.write("/head>"); gbWndPopupLinks.document.write(""); gbWndPopupLinks.document.write(gbstrParaTotal); gbWndPopupLinks.document.write(""); gbWndPopupLinks.document.close(); // Close the temporary if (!gbBsNS3 && gbWndTemp != null) { gbWndTemp.close(); }else { gbWndPopupLinks.focus(); } return true; } return false; } /// Section End - Embedded Stub (JavaScript 1.0) //// Segment End -- (JavaScript 1.0) //// Segment Begin -- (JavaScript 1.2) /// Section Begin - DHTM (JavaScript 1.2) //Begin to support extended and dropdown text effects. function IsParagraph(el) { return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false; } //Begin to support extended and dropdown text effects. function kadovIsParagraph(el) { return IsParagraph(el); } function InitEachChild(el) { for(var i=0; i "") ) setAttribute(child.style, "x-on-pageload", "" ); } var href = getAttribute(child,"href"); if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 ) FilePopupInit(child.id); // Init for Popup else if( child.className == "dropspot" || child.className == "expandspot" || child.className == "glossterm" ) TextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text else if( child.className == "trigger") InitTrigger(child.id);// Init for Trigger else { InitEffects(child.id);// Init for DHTML effects CEngine.SetOneTargetInitialState( child.id ); } } if( (child.tagName == "IMG") && (getAttribute(child,"dynsrc") > "") ) child.start = "mouseover";// to start a AVI file. fileopen doesn't work InitEachChild(child); } } function kadovInitEachChild(el) { InitEachChild(el); } function RetrieveTextInner(el) { var x = ""; if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" )) return x; if( IsParagraph(el) ) { var strNewID = " "; if( el.id != "" ) strNewID += "id=" + el.id + "_NewSpan "; x = "" + el.innerHTML + ""; } else { for(var i=0; i 0 ) if( (nTagClose - nTagOpen) != nDistance ) return strRawHTML; var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ; return RetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose ); } function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance ) { return RetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance ); } function AdjustObjectTag(strRawHTML, nStartPos) {// adjust object tag for related topics HTML control, because innerHTML misses out the item settings //Is there any DTC? var strDTCTagOpen = ''; var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos ); if( nDTCTagOpen < 0 ) return strRawHTML; var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen ); if( nDTCTagClose < nDTCTagOpen) return strRawHTML; // no Design Time Controls; //Is the DTC HTML Help Control? var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11'; var strRTObjTagClose = ''; var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen ); if( nRTObjTagOpen < nDTCTagOpen ) return strRawHTML; var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen ); if( nRTObjTagClose < nRTObjTagOpen ) return strRawHTML; // is not a HTML help control // Is it a related Topics html help control? var strRTObjLabel = ''; } // to insert the reconstructed item params into runtime object tag var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length); return AdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length); } function kadovAdjustObjectTag(strRawHTML, nStartPos) {// adjust object tag for related topics HTML control, because innerHTML misses out the item settings return AdjustObjectTag(strRawHTML, nStartPos); } function TextPopupOnLoad( el ) { if( typeof(el) == "string" ) el = getElement(el); var src = null; if(el.id) { for (var i=0;i= 0 && indx > 0 && indx < str.length) { effect = effectsList.substr(nStart, indx-nStart); var indx2 = str.indexOf(";", nStart); if(indx2 == -1) indx2 = str.length; value = effectsList.substr(indx+1, indx2); if(effect && value) setAttribute(srcElement,effect, value); nStart = effectsList.indexOf("x-on", indx2+1); indx = str.indexOf(":", nStart); } } InitEffect( srcElement, "x-on-hover" ); InitEffect( srcElement, "x-on-pageclick" ); InitEffect( srcElement, "x-on-pageload" ); InitEffect( srcElement, "x-on-trigger-1" ); InitEffect( srcElement, "x-on-trigger-2" ); } function kadovInitEffects( element ) { InitEffects( element ); } //End HTML code invoked function function InitEffect( element, prop ) { var values = null; if( getAttribute(element,prop)) values = getAttribute(element, prop ); else if( getAttribute( element, "currentStyle" ) && element.currentStyle.getAttribute) values = element.currentStyle.getAttribute( prop ); else if (element.style.getAttribute) values = element.style.getAttribute( prop ); if( !values ) return; var functions = new Array(); var nIdx = 0, nStart = 0; var nNext = values.indexOf( "\)", 0); while( nNext >= 0 && nNext < values.length ) { functions[nIdx] = values.substr( nStart, nNext-nStart+1); nStart = nNext + 1; nIdx++; nNext = values.indexOf( "\)", nStart); } for( var i=0; i= 0 ) { nPageClick = arrForClickCount[j].indexOf("="); if( nPageClick > 0 ) { nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1; break; } } } var args = srcargs; if( j < arrForClickCount.length ) {// to strip out the "clicks=99" from the arguments string args = ""; for( var k = 0; k < arrForClickCount.length; k ++ ) { if( k != j ) { args += arrForClickCount[k]; if( k < arrForClickCount.length - 1 ) args += ","; } } } bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes ); } } function kadovInitEffect( element, prop ) { InitEffect( element, prop ); } function TranslateProp( prop ) { switch( prop ) { case "x-on-hover" : return "bsschover"; case "x-on-pageclick" : return "bsscpageclick"; case "x-on-pageload" : return "bsscpageload"; case "x-on-trigger-1" : return "bssctrigger1"; case "x-on-trigger-2" : return "bssctrigger2"; } return null; } function kadovTranslateProp( prop ) { return TranslateProp( prop ); } //End to convert iWrite format to RoboEditor Format for DHTML effects //Begin the definition of one entry to DHTML effects function bsscFXInit( trigger_ID, target_ID, event_type, action_type, action_setting, event_addional ) { //if( typeof(target_ID) != "string" )//MUST have a target_ID // return; // we don't support Navigator yet if( typeof(event_type) == "string" ) event_type = event_type.toLowerCase(); if( typeof(action_type) == "string" ) action_type = action_type.toLowerCase(); if( typeof(action_setting) == "string" ) action_setting = action_setting.toLowerCase(); // to get the target element then add it to the target list var eleTarget = CCSSP.GetObject( target_ID ); if( (eleTarget != null) && (event_type != null) && (action_type != null) ) { CEngine.AddOneTarget( target_ID, eleTarget ); CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional); } // to validate the trigger_ID parameter if( typeof(trigger_ID) == "string" && trigger_ID != "" ) CEngine.BuildTriggerObject( trigger_ID, target_ID ); } //End the definition of one entry to DHTML effects /// Section End - DHTM (JavaScript 1.2) /// Section Begin - CCSSP DHTM (JavaScript 1.2) //Begin JavaScript libary for cross-platform positioning object. function CCSSP(){} // constructor of CCSSP class CCSSP.GetObject = function( obj ) {//convert object name string or reference into a valid object reference if( typeof(obj) == "object" ) return obj; else if( typeof(obj) == "string" && obj != "") { if (gbBsNS6) return getElement(obj); else if( gbBsNS4 ) return eval("document." + obj); else return eval("document.all(\"" + obj + "\")"); } else return null; } CCSSP.MoveObjectTo = function(obj, x, y) {//positioning an object at a specific pixel coordinate if( gbBsNS4 && !gbBsNS6) obj.moveTo(x,y); else { if (x == '') x = 0 ; if (y == '') y = 0 ; obj.style.left = parseInt(x) + 'px'; obj.style.top = parseInt(y) + 'px'; } } CCSSP.SetTimer = function(obj, timeout) { if( obj.timer == null ) { if(gbAIR) { obj.timer = setInterval(function(){CEngine.PerformAnimation( obj.aniIndex)}, timeout ); } else obj.timer = setInterval("CEngine.PerformAnimation(" + obj.aniIndex + ")", timeout ); } } CCSSP.MoveObjectBy = function(obj, dx, dy) {//moveing a object by x and/or y pixel if (gbBsNS6) { var left = parseInt(obj.style.left); obj.style.setProperty('left',(left + dx ) + 'px',0) ; var top = parseInt(obj.style.top); obj.style.setProperty('top' , (top + dy) + 'px' ,0); } else if( gbBsNS4 ) obj.moveBy(dx,dy); else { obj.style.pixelLeft += dx; obj.style.pixelTop += dy; } } CCSSP.SetObjectBGColor = function(obj, color) {//set the background color of an object if (gbBsNS6) obj.style.setProperty( "background-color" , color , 0); else if( gbBsNS4 ) obj.bgColor = color; else obj.style.backgroundColor = color; } CCSSP.ShowObject = function(obj, bShow) {// set the object to be visible or invisible if (gbBsNS6) obj.style.setProperty('visibility', (bShow == true) ? 'visible' : 'hidden',null); else if( gbBsNS4 ) obj.visibility = (bShow == true) ? 'show' : 'hide'; else obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space. } CCSSP.GetObjectLeft = function(obj) {// retrieve the x coordinate of a posionable object if (gbBsNS6) return obj.style.left ; else if( gbBsNS4 ) return obj.left; else return obj.style.pixelLeft; } CCSSP.GetObjectTop = function(obj) {// retrieve the y coordinate of a posionable object if (gbBsNS6) return obj.style.top ; else if( gbBsNS4 ) return obj.top; else return obj.style.pixelTop; } CCSSP.GetObjectContainLeft = function(obj) {// retrieve the x coordinate of a posionable object relative to it's parent element if( typeof(obj.pageX) != 'undefined') return obj.pageX; else if( typeof(obj.clientLeft) != 'undefined' ) return obj.clientLeft; else return obj.offsetLeft; } CCSSP.GetObjectWindowLeft = function(obj) {// retrieve the x coordinate of a posionable object relative to browser window if( gbBsNS4 && !gbBsNS6) return obj.pageX; else { var nOffsetWindowLeft = 0; for(var element = obj; element; element = element.offsetParent) nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element); return nOffsetWindowLeft; } } CCSSP.GetObjectContainTop = function(obj) {// retrieve the y coordinate of a posionable object relative to it's parent element if( typeof(obj.pageY) != 'undefined') return obj.pageY; else if( typeof(obj.clientTop) != 'undefined' && obj == document.body) return obj.clientTop; else return obj.offsetTop; } CCSSP.GetObjectWindowTop = function(obj) {// retrieve the y coordinate of a posionable object relative to browser window if( gbBsNS4 && !gbBsNS6) return obj.pageY; else { var nOffsetWindowTop = 0; for(var element = obj; element; element = element.offsetParent) nOffsetWindowTop += CCSSP.GetObjectContainTop(element); return nOffsetWindowTop; } } CCSSP.GetObjectHeight = function(obj) {// retrieve the height of a posionable object if( gbBsNS4 && !gbBsNS6) return obj.clip.height; else return obj.offsetHeight; } CCSSP.GetObjectWidth = function(obj) {// retrieve the width of a posionable object if( gbBsNS4 && !gbBsNS6) return obj.clip.width; else return obj.offsetWidth; } CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler ) { // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined if( srcObj == window && rawEventName == 'onload' ) { var bSet = false; if( window.addEventListener ) { window.addEventListener( 'load', new Function("event", funcHandler ),false); bSet = true; } else if( window.attachEvent ) { window.attachEvent('onload', new Function("event", funcHandler ), false); bSet = true; } if( bSet ) return; } if (gbBsNS4 && !gbBsNS6) return ; var oldHandler = ""; if (gbBsMac &&gbBsIE4&&!gbBsIE5) { if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown") { //search for