";
var objBody = document.all.tags("BODY")[0];
if( typeof(objBody) != "object" )
return;
objBody.insertAdjacentHTML("beforeEnd", strPopupDiv);
}
function BSSCPopup_Timeout(nIndex, nToken)
{
if (!IsValidToken(nToken)) return;
if ((getPopupIFrame(nIndex).document.readyState == "complete") &&
(getPopupIFrame(nIndex).document.body != null)) {
window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow;
setClear(nIndex);
window.gbPopupTimeoutExpired = true;
BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);
getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;
if (!gbOrignalOnMouseDown && document.onmousedown)
gbOrignalOnMouseDown = document.onmousedown;
document.onmousedown = BSSCPopupParentClicked;
} 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 = tagsObject.all.tags("A");
BSSCPopup_ChangeTargettoParent2(collA);
var collIMG = tagsObject.all.tags("IMG");
BSSCPopup_ChangeTargettoParent2(collIMG);
}
function BSSCPopup_ChangeTargettoParent2(colls)
{
var j = 0;
if (colls != null) {
for (j = 0; j < colls.length; j ++ )
{
var strtemp = colls[j].href;
strtemp = strtemp.toLowerCase();
if (strtemp.indexOf("javascript:") == -1)
if (colls[j].target == "")
colls[j].target = "_parent";
}
}
}
function BSPSPopupTopicWinHelp(strURL)
{
_BSSCPopup(strURL);
return;
}
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 we are already in a popup, replace the contents
// if (BSSCPopup_IsPopup()) {
// parent._BSSCPopup(strURL, cuswidth, cusheight);
// } else {
var nToken = takeToken(); // take token first.
var nIndex = _BSSCCreatePopupDiv(strURL);
window.gbPopupTimeoutExpired = false;
var ntWidth = gBsClientWidth;
var ntHeight = gBsClientHeight;
_BSPSGetClientSize();
if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {
setDirty();
}
if (IsDirty(nIndex)) {
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;
window.onbeforeunload = window_BUnload;
}
function window_BUnload()
{
for (var i = 0; i < arrayPopupURL.length; i ++)
document.all(getPopupID(i)).outerHTML = "";
arrayPopupURL.length = 0;
if (ehlpdhtm_fOldBefureUnload)
ehlpdhtm_fOldBefureUnload();
}
function _BSSCPopup2(strURL, width, height)
{
if (window.name == gstrPopupSecondWindowName) {
window.location = strURL;
} else {
if (!gbBsMac || !gBsBrowser.ns4) {
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 (gBsBrowser.ns) {
if (gBsBrowser.ns6) {
strParam += ",Height=" + nHeight + ",Width=" + nWidth;
strParam += ",screenX=" + nX + ",screenY=" + nY;
}
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;
}
window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);
if (gBsBrowser.ns4) {
window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE);
window.gPopupWindow.onclick = NonIEPopup_HandleClick;
window.gPopupWindow.onblur = NonIEPopup_HandleBlur;
}
else if (gBsBrowser.ie4)
{
setTimeout("setPopupFocus();", 100);
}
}
return;
}
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 != null) {
if (e.target.target == "")
window.location.href = e.target.href;
else
window.open(e.target.href, e.target.target);
if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) {
this.close();
}
} else {
this.close();
}
return false;
}
function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)
{
if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") {
_BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);
return;
}
if (!IsValidToken(nToken)) 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;
// Determine the width and height for the window
//var size = new BSSCSize(0, 0);
//BSSCGetContentSize(window.getPopupIFrame(nIndex), size);
//var nWidth = size.x;
//var nHeight = size.y;
_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;
if (nWidth < 40 || nHeight < 40) return; // there must be something terribly wrong.
window.getPopupDivStyle(nIndex).pixelWidth = nWidth;
window.getPopupDivStyle(nIndex).pixelHeight = nHeight;
window.getPopupShadowStyle(nIndex).pixelWidth = nWidth;
window.getPopupShadowStyle(nIndex).pixelHeight = nHeight;
window.getPopupTopicStyle(nIndex).pixelWidth = nWidth;
window.getPopupTopicStyle(nIndex).pixelHeight = nHeight;
if (gbBsIE55)
{
window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2;
window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2;
window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2;
window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2;
}
window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth;
window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight;
if (gbBsIE55)
{
window.getPopupIFrameStyle(nIndex).top = 0;
window.getPopupIFrameStyle(nIndex).left = 0;
}
var strURL = getPopupURL(nIndex);
if (strURL.indexOf("#") != -1)
getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5.
MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);
}
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);
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 = window.getPopupDivStyle(nIndex).pixelWidth;
var nHeight = window.getPopupDivStyle(nIndex).pixelHeight;
if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) {
nTop = nClickY + 10;
} else {
nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20;
}
if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) {
nLeft = nClickX;
} else {
nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8;
}
if (nTop < document.body.scrollTop ) nTop = document.body.scrollTop + 1;
if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1;
window.getPopupDivStyle(nIndex).left = nLeft;
window.getPopupDivStyle(nIndex).top = nTop;
// Set the location of the background blocks
window.getPopupShadowStyle(nIndex).left = 6;
window.getPopupShadowStyle(nIndex).top = 6;
if (gbBsIE55)
{
window.getPopupShadowStyle(nIndex).left = 4;
window.getPopupShadowStyle(nIndex).top = 4;
}
if (gbBsMac) {
// Total hack on the iMac to get the IFrame to position properly
window.getPopupIFrameStyle(nIndex).pixelLeft = 100;
window.getPopupIFrameStyle(nIndex).pixelLeft = 0;
// Explicitly call BSSCOnLoad because the Mac doesn't seem to do it
window.getPopupIFrame(nIndex).window.BSSCOnLoad();
}
BSSCPopup_Timeout(nIndex , nToken );
return;
}
function BSSCSize(x, y)
{
this.x = x;
this.y = y;
}
function BSSCGetContentSize(thisWindow, size)
{
if (!((gBsBrowser.ie4) || (gBsBrowser.ns4)))
return;
if (gbBsMac) {
size.x = 300;
size.y = 300;
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 * gBMaxXOfParent;
GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;
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 * gBMaxXOfParent;
// This double resize causes the document to re-render (and we need it to)
if (!gbBsIE5)
thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.
thisWindow.resizeTo(1, 1);
thisWindow.resizeTo(1, 1);
thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
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
{
thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
maxy = gBsClientHeight * gBMaxYOfParent;
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;
thisWindow.resizeTo(x, miny);
thisWindow.resizeTo(x, miny);
diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - 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 = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;
thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.
// Handle absurd cases just in case IE flakes
// if (size.y < 100) {
// size.y = 100;
// }
}
}
else {
// VH 08/06/00 . OK there is another case we did not check before.
if (thisWindow.document.body.scrollWidth > maxgoldx) {
size.x = maxx;
size.y = miny;
thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.
}
else {
// downsize from maxgoldx , now I try to using binary divide.
x = maxgoldx;
deltax = -maxgoldx/2;
//i = 0;
while (true) {
x = x + deltax;
thisWindow.resizeTo(x, miny);
thisWindow.resizeTo(x, miny);
diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_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;
//i ++;
}
size.x = thisWindow.document.body.scrollWidth ;//+ gBscrollWidth;
size.y = thisWindow.document.body.scrollHeight ;//+ gBscrollHeight;
thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.
}
}
// no reload no scrollbar.
//size.x = size.x + 16; //reserve a width for scrollbar (IE 4.0 only)
thisWindow.resizeTo(size.x, size.y);
thisWindow.resizeTo(size.x, size.y);
return;
}
function BSSCPopupParentClicked()
{
if (!window.gbPopupTimeoutExpired) {
return false;
}
document.onmousedown = gbOrignalOnMouseDown;
// Simply hide the popup
hideAll();
window.gbPopupTimeoutExpired = false;
return true;
}
function BSSCPopupClicked()
{
if (!window.gbPopupTimeoutExpired) {
return false;
}
var popupIFrame = getCurrentPopupIFrame();
if (popupIFrame == null) {
return true;
}
/*
if ("undefined" != typeof(popupIFrame.gbInPopupMenu) &&
popupIFrame.gbInPopupMenu) {
return true;
}*/
if (!((popupIFrame.window.event != null) &&
(popupIFrame.window.event.srcElement != null) &&
((popupIFrame.window.event.srcElement.tagName == "A") ||
(popupIFrame.window.event.srcElement.tagName == "IMG")))) {
document.onmousedown = gbOrignalOnMouseDown;
// Simply hide the popup
hideAll();
window.gbPopupTimeoutExpired = false;
return true;
}
}
//trace the mouse over's position for hotspot
function BSPSPopupOnMouseOver(event)
{
if (gBsBrowser.ie4) {
window.gnPopupClickX = event.clientX + document.body.scrollLeft;
window.gnPopupClickY = event.clientY + document.body.scrollTop;
window.gnPopupScreenClickX = event.screenX;
window.gnPopupScreenClickY = event.screenY;
} else if (gBsBrowser.ns4) {
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 (gBsBrowser.ns4) {
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
//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) {
//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page...
if (gbBsNS6)
document.write("");
else
document.write("");
} else{
document.write("");
if (gbBsIE4) {
document.write("");
}
}
g_bIsPopupMenuInit = true;
}
}
//Define variable arguments as: strTitle, strUrl
function MTE()
{
this.strTitle = MTE.arguments[0];
if (MTE.arguments.length > 1)
this.strURL = MTE.arguments[1];
else
this.strURL = this.strTitle;
}
// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js)
function PopupMenu_SetTopicList(aPopupTopicArray)
{
gbPopupMenuTopicList = aPopupTopicArray;
}
//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");
wndPopupLinks.document.write("");
var strParaLine = "";
for (var i = 0; i < (argLen - 2) / 2; i++) {
strParaLine = "";
strParaLine += "";
strParaLine += fn_arguments[2 * i + 2];
strParaLine += "";
strParaLine += " ";
wndPopupLinks.document.write(strParaLine);
}
wndPopupLinks.document.write("