Salome HOME
*** empty log message ***
[modules/smesh.git] / doc / salome / gui / SMESH / ehlpdhtm.js
index 86d26ea96c2464e3f5976e99e618fae0e3a5aa07..6cfd2e4635ab4c1d1c212bcbecc78145599fd148 100755 (executable)
@@ -1,6 +1,6 @@
 // eHelp® Corporation Dynamic HTML JavaScript \r
-// Copyright© 1998-2001 eHelp® Corporation.All rights reserved.\r
-// Version=4.57\r
+// Copyright© 1998-2003 eHelp® Corporation.All rights reserved.\r
+// Version=4.82\r
 \r
 // Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.\r
 \r
@@ -22,9 +22,15 @@ var HH_ActiveX = false;
 var gstrBsAgent        = navigator.userAgent.toLowerCase();\r
 var gnBsVer                    = parseInt(navigator.appVersion);\r
 \r
-var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1);\r
-var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1));\r
 var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);\r
+var gbBsKonqueror      = (gstrBsAgent.indexOf('konqueror') != -1);\r
+var gbBsSafari         = (gstrBsAgent.indexOf('safari') != -1);\r
+var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;\r
+var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;\r
+\r
+var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);\r
+var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));\r
+var gbBsSunOS          = (gstrBsAgent.indexOf("sunos") != -1);\r
 \r
 var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));\r
 var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));\r
@@ -36,30 +42,108 @@ var gbBsIE302              = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") !=
 \r
 var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));\r
 var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));\r
+var    gbBsNS7                 = false;\r
 \r
 var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));\r
 var gbBsIE5                    = false;\r
 var gbBsIE55           = false;\r
 \r
-gbBsIE = (navigator.appName.indexOf("Microsoft") != -1);\r
+var gbBsOpera6         = false;\r
+var gbBsOpera7         = false;\r
 \r
-if (parseInt(navigator.appVersion) >= 4) {\r
-       gbBsIE4 = (navigator.appName.indexOf("Microsoft") != -1);\r
+var gbBsKonqueror3     = false;\r
 \r
-       if (gbBsIE4) {\r
-               var nPos = gstrBsAgent.indexOf("msie");\r
-               var strIEversion = gstrBsAgent.substring(nPos + 5);\r
-               var nVersion =  parseFloat(strIEversion);\r
-               if (nVersion >= 5)\r
-                       gbBsIE5 = true;\r
-               if (nVersion >= 5.5)\r
-                       gbBsIE55 = true;\r
+\r
+\r
+gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;;\r
+if (gbBsIE)\r
+{\r
+       if (parseInt(navigator.appVersion) >= 4) {\r
+               gbBsIE4 = true;\r
+               if (gbBsIE4) {\r
+                       var nPos = gstrBsAgent.indexOf("msie");\r
+                       var strIEversion = gstrBsAgent.substring(nPos + 5);\r
+                       var nVersion =  parseFloat(strIEversion);\r
+                       if (nVersion >= 5)\r
+                               gbBsIE5 = true;\r
+                       if (nVersion >= 5.5)\r
+                               gbBsIE55 = true;\r
+               }\r
+       }\r
+}\r
+if (gbBsNS6)\r
+{\r
+       var nPos=gstrBsAgent.indexOf("gecko");\r
+       if(nPos!=-1)\r
+       {\r
+               var nPos2=gstrBsAgent.indexOf("/", nPos);\r
+               if(nPos2!=-1)\r
+               {\r
+                       var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1));\r
+                       if (nVersion>=20020823)\r
+                               gbBsNS7=true;\r
+               }\r
+       }       \r
+}\r
+if (gbBsOpera)\r
+{\r
+       var nPos = gstrBsAgent.indexOf("opera");\r
+       if(nPos!=-1)\r
+       {\r
+               var nVersion = parseFloat(gstrBsAgent.substring(nPos+6));\r
+               if (nVersion >= 6)\r
+               {\r
+                       gbBsOpera6=true;\r
+                       if (nVersion >=7)\r
+                               gbBsOpera7=true;        \r
+               }\r
+       }\r
+}\r
+if (gbBsKonqueror)\r
+{\r
+       var nPos = gstrBsAgent.indexOf("konqueror");\r
+       if(nPos!=-1)\r
+       {\r
+               var nVersion = parseFloat(gstrBsAgent.substring(nPos+10));\r
+               if (nVersion >= 3)\r
+               {\r
+                       gbBsKonqueror3=true;\r
+               }\r
        }\r
 }\r
 \r
-var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);\r
-var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));\r
-var gbBsOp3                    = (gstrBsAgent.indexOf('opera') != -1);\r
+function insertAdjacentHTML(obj, where, htmlStr)\r
+{\r
+       if (gbBsIE || gbBsOpera7)\r
+       {\r
+               obj.insertAdjacentHTML(where, htmlStr);\r
+       }\r
+       else if (gbBsNS6 || gbBsSafari)\r
+       {\r
+               var r = obj.ownerDocument.createRange();\r
+               r.setStartBefore(obj);\r
+               var     parsedHTML = r.createContextualFragment(htmlStr);\r
+               \r
+               switch (where){\r
+               case 'beforeBegin':\r
+                       obj.parentNode.insertBefore(parsedHTML,obj);\r
+                       break;\r
+               case 'afterBegin':\r
+                       obj.insertBefore(parsedHTML,obj.firstChild);\r
+                       break;\r
+               case 'beforeEnd':\r
+                       obj.appendChild(parsedHTML);\r
+                       break;\r
+               case 'afterEnd':\r
+                       if (obj.nextSibling){\r
+                       obj.parentNode.insertBefore(parsedHTML,obj.nextSibling);\r
+                       } else {\r
+                       obj.parentNode.appendChild(parsedHTML);\r
+                       }\r
+                       break;\r
+               }\r
+       }\r
+}\r
 \r
 // Utilities functions.\r
 function BsscHasExtJs()\r
@@ -108,7 +192,6 @@ function BsscRegisterOnMouseOut(funcHandler)
        gBsOnMouseOuts[nLength] = funcHandler;\r
 }\r
 \r
-\r
 function BsGeneralOnLoad()\r
 {\r
        if (!gbBsIE4 && !gbBsNS4)\r
@@ -153,18 +236,14 @@ function BSSCOnUnload()
 {\r
        if (!BsscHasExtJs()) return;\r
        for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)\r
-       {\r
                gBsOnUnLoads[nElement]();\r
-       }\r
 }\r
 \r
 function BSSCOnMouseOver()\r
 {\r
        if (!BsscHasExtJs()) return;\r
        for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)\r
-       {\r
                gBsOnMouseOvers[nElement]();\r
-       }\r
 }\r
 \r
 function BSSCOnMouseOut()\r
@@ -177,7 +256,6 @@ function BSSCOnMouseOut()
 }\r
 // End of invocation of the event handle functions.\r
 \r
-\r
 // Add the GereralOnLoad to the onload array.\r
 if (typeof(BsscRegisterOnLoad) != "undefined")\r
 {\r
@@ -195,10 +273,10 @@ function BsHHActivateComponents()
 {\r
        if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))\r
        {\r
-               var objBody = document.all.tags("BODY")[0];\r
+               var objBody = getElementsByTag(document,"BODY")[0];\r
                if( typeof(objBody) == "object" )\r
                {\r
-                       objBody.insertAdjacentHTML("beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');\r
+                       insertAdjacentHTML(objBody, "beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');\r
                        if (HHComponentActivator.object)\r
                                HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);\r
                }\r
@@ -235,17 +313,14 @@ function _WritePopupMenuLayer()
 {\r
        if (!g_bIsPopupMenuInit)\r
         {\r
-         if (gbBsNS4) {\r
+         if (gbBsNS4&&!gbBsNS6) {\r
 //Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...\r
-          if (gbBsNS6)\r
-               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-          else\r
                document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");\r
          } else{\r
          document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-         if (gbBsIE4) {\r
+         if (!(gbBsNS4&&!gbBsNS6)) {\r
                document.write("<STYLE TYPE='text/css'>");\r
-               if (gbBsMac) {\r
+               if (gbBsMac&&gbBsIE4) {\r
                        document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
                        document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
                } else {\r
@@ -259,23 +334,6 @@ function _WritePopupMenuLayer()
        }\r
 }\r
 \r
-//Define variable arguments as: strTitle, strUrl\r
-function MTE() \r
-{\r
-       this.strTitle = MTE.arguments[0];\r
-       if (MTE.arguments.length > 1)\r
-               this.strURL = MTE.arguments[1];\r
-       else\r
-               this.strURL = this.strTitle;\r
-}\r
-\r
-// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js)\r
-function PopupMenu_SetTopicList(aPopupTopicArray)\r
-{\r
-       gbPopupMenuTopicList = aPopupTopicArray;\r
-}\r
-\r
-\r
 //Seek for the bsscright frame \r
 function _SeekFrameByName( cRoot, strName )\r
 {\r
@@ -304,8 +362,27 @@ function _GetFrameByName( cRoot, strName )
                return null;\r
 }\r
 \r
+var gfn_arguments = null;\r
 function _PopupMenu_Invoke(fn_arguments)\r
 {\r
+       gfn_arguments = fn_arguments;\r
+       if (gbBsOpera6&&gbBsMac)\r
+       {\r
+               var wndOldPopupLinks= window.open(document.location.href, "popuplinks");\r
+               wndOldPopupLinks.close();\r
+               setTimeout("_PopupMenu_Invoke_2();",100);\r
+       }\r
+       else\r
+       {\r
+               _PopupMenu_Invoke_2();\r
+       }\r
+}\r
+\r
+function _PopupMenu_Invoke_2()\r
+{\r
+       var fn_arguments = gfn_arguments;\r
+       gfn_arguments = null;\r
+       \r
        // Make sure we have reasonable arguments\r
        var argLen = fn_arguments.length;\r
        if (argLen < 3) {\r
@@ -328,7 +405,7 @@ function _PopupMenu_Invoke(fn_arguments)
                strTarget = "TARGET='" + fn_arguments[1] + "'";\r
        }\r
 \r
-       if ((!gbBsIE4 && !gbBsNS4) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {\r
+       if ((!gbBsIE4 && !gbBsNS4 && !gbBsOpera7 && !gbBsKonqueror3 &&!gbBsSafari) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {\r
        \r
                var argLen      = fn_arguments.length;\r
 \r
@@ -339,18 +416,28 @@ function _PopupMenu_Invoke(fn_arguments)
                strParam += ",height=" + nHeight + ",width=200";\r
                strParam += ",resizable";\r
 \r
+               var wndTemp=null;\r
                // Create a temporary window first to ensure the real popup comes up on top\r
-               var wndTemp = window.open("", "temp", strParam);\r
+               if (!gbBsOpera)\r
+                       wndTemp = window.open("", "temp", strParam);\r
 \r
                // Create the real popup window\r
-               var wndPopupLinks = window.open("", "popuplinks", strParam);\r
+               var wndPopupLinks=null;\r
+               if (gbBsOpera&&gbBsMac)\r
+               {\r
+                       wndTemp = window.open(document.location.href, "temp", strParam);\r
+                       wndPopupLinks= window.open(document.location.href, "popuplinks", strParam);\r
+               }\r
+               else\r
+                       wndPopupLinks= window.open("", "popuplinks", strParam);\r
+               wndPopupLinks.document.open("text/html");\r
 \r
                // Close the temporary\r
-               wndTemp.close();\r
+               if (wndTemp)\r
+                       wndTemp.close();\r
 \r
-               wndPopupLinks.document.open("text/html");\r
-               wndPopupLinks.document.write("<html><head></head>");\r
-               wndPopupLinks.document.write("<body onBlur=\'self.focus();\'>");\r
+               var sHTML="<html><head></head>";\r
+               sHTML+="<body onBlur=\'self.focus();\'>";\r
                var strParaLine = "";\r
                for (var i = 0; i < (argLen - 2) / 2; i++) {\r
                        strParaLine = "";\r
@@ -367,19 +454,18 @@ function _PopupMenu_Invoke(fn_arguments)
                        strParaLine += fn_arguments[2 * i + 2];\r
                        strParaLine += "</a>";\r
                        strParaLine += "<br>";\r
-                       wndPopupLinks.document.write(strParaLine);\r
+                       sHTML+=strParaLine;\r
                }\r
-               wndPopupLinks.document.write("</body></html>");\r
+               sHTML+="</body></html>";\r
+               wndPopupLinks.document.write(sHTML);\r
                wndPopupLinks.document.close();\r
                window.gbInPopupMenu = true;\r
                if (!gbBsIE) {\r
                        wndPopupLinks.focus();\r
                }\r
-\r
                return false;\r
        }\r
 \r
-\r
        if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||\r
                ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {\r
                // Get the place that we will be putting the topic into\r
@@ -405,7 +491,7 @@ function _PopupMenu_Invoke(fn_arguments)
        }\r
        \r
        var strMenu = "";\r
-       if (gbBsNS4) {\r
+       if (gbBsNS4&&!gbBsNS6) {\r
                strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';\r
        } else {\r
                strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
@@ -455,9 +541,9 @@ function _PopupMenu_Invoke(fn_arguments)
        var nEventX = 0;\r
        var nEventY = 0;\r
        var nWindowWidth = 0;\r
-       if (gbBsIE4) {\r
+       if (gbBsIE4 || gbBsOpera7) {\r
 \r
-               layerPopup = document.all["PopupMenu"];\r
+               layerPopup = getElement("PopupMenu");\r
                layerPopup.innerHTML = strMenu;\r
                stylePopup = layerPopup.style;\r
 \r
@@ -493,13 +579,21 @@ function _PopupMenu_Invoke(fn_arguments)
                        gOlddocumentClick = document.onclick;\r
                document.onclick = PopupMenu_HandleClick;\r
 \r
-       } else if (gbBsNS6) {\r
-               layerPopup = document.getElementById("PopupMenu");\r
+       } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) {\r
+               layerPopup = getElement("PopupMenu");\r
                layerPopup.style.visibility = "hidden";\r
        \r
-               var e = fn_arguments[0];\r
-               nEventX = e.pageX;\r
-               nEventY = e.pageY;\r
+               if (gbBsNS6)\r
+               {\r
+                       var e = fn_arguments[0];\r
+                       nEventX = e.pageX;\r
+                       nEventY = e.pageY;\r
+               }\r
+               else\r
+               {\r
+                       nEventX = window.event.clientX;\r
+                       nEventY = window.event.clientY;\r
+               }\r
                _BSPSGetClientSize();\r
                layerPopup.innerHTML = strMenu;\r
 \r
@@ -571,7 +665,6 @@ function _PopupMenu_Invoke(fn_arguments)
        return false;\r
 }\r
 \r
-\r
 function PopupMenu_Timeout()\r
 {\r
        window.gbPopupMenuTimeoutExpired = true;\r
@@ -579,48 +672,37 @@ function PopupMenu_Timeout()
 \r
 function PopupMenu_Over(e)\r
 {\r
-    if (gbBsIE4) {\r
+    if (gbBsIE4||gbBsOpera7)\r
                e.srcElement.className = "PopupOver";\r
-    } else if (gbBsNS4) {\r
-//             this.bgColor = "red";\r
-//        e.target.document.className = "PopupOver";\r
-    }\r
+    else if (gbBsNS6)\r
+               e.target.parentNode.className = "PopupOver";\r
        return;\r
 }\r
 \r
 function PopupMenu_Out(e)\r
 {\r
-    if (gbBsIE4) {\r
+    if (gbBsIE4||gbBsOpera7)\r
                e.srcElement.className = "PopupNotOver";\r
-    } else if (gbBsNS4) {\r
-        this.bgColor = "#f0f0f0";\r
-    }\r
+    else if (gbBsNS6)\r
+               e.target.parentNode.className = "PopupNotOver";\r
        return;\r
 }\r
 \r
-\r
 function PopupMenu_HandleClick(e)\r
 {\r
        if (window.gbPopupMenuTimeoutExpired) {\r
-\r
                window.gbInPopupMenu = false;\r
-\r
                if (gbBsNS4 && !gbBsNS6) {\r
                        window.releaseEvents(Event.MOUSEDOWN);\r
                }\r
 \r
                var layerPopup = null;\r
-               var stylePopup = null;\r
-               if (gbBsIE4) {\r
-                       layerPopup = document.all["PopupMenu"];\r
-                       stylePopup = layerPopup.style;\r
-                       stylePopup.visibility = "hidden";\r
-               } else if (gbBsNS6) {\r
-                       layerPopup = document.getElementById("PopupMenu");\r
-                       layerPopup.style.visibility = "hidden";\r
-               } else if (gbBsNS4) {\r
+               if (gbBsNS4&&!gbBsNS6) {\r
                        layerPopup = document.layers.PopupMenu;\r
                        layerPopup.visibility = "hide";\r
+               } else {\r
+                       layerPopup = getElement("PopupMenu");\r
+                       layerPopup.style.visibility = "hidden";\r
                }\r
        \r
                if (gOlddocumentClick)\r
@@ -634,16 +716,9 @@ function PopupMenu_HandleClick(e)
        return;\r
 }\r
 \r
-// This function should be deleted when all old projects are cleaned up\r
-function BSPSWritePopupFrameForIE4()\r
-{\r
-       return false;\r
-}\r
-\r
-/////////////////////////////////////////////////////////////////////\r
 function BSSCPopup_ClickMac()\r
 {\r
-       if ((!DHTMLPopupSupport()) && (gbBsIE4))\r
+       if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7))\r
        {       \r
                var bClickOnAnchor = false;\r
                var el;\r
@@ -660,7 +735,7 @@ function BSSCPopup_ClickMac()
                                if (el.tagName == "BODY") {\r
                                        break;\r
                                }\r
-                               el = el.parentElement;\r
+                               el = getParentNode(el);\r
                        }\r
                }\r
                if (BSSCPopup_IsPopup())\r
@@ -688,13 +763,11 @@ function BSSCPopup_ClickMac()
                        }\r
                }\r
        }\r
- }\r
-\r
-//////////////////////////////////////////////////////////////////////\r
+}\r
 \r
 function BsPopupOnClick()\r
 {\r
-       if (!gbBsIE4)\r
+       if (!gbBsIE4 && !gbBsOpera7)\r
                return;\r
 \r
        BSSCPopup_ClickMac();\r
@@ -709,26 +782,16 @@ function _BSSCOnError(message)
 \r
 //End to support previous relative topics\r
 \r
-\r
 /// Section End - General and relative topics (JavaScript 1.0)\r
 \r
 /// Section Begin  - Popup (JavaScript 1.0)\r
-\r
 //Begin to support previous popup functions\r
-//////////////////////////////////////////////////////////////////////////////////////////////\r
-//\r
-//     Begin DHTML Popup Functions\r
-//\r
-//////////////////////////////////////////////////////////////////////////////////////////////\r
+\r
 //variables used to isolate the browser type\r
-var gBsDoc                     = null;                 \r
-var gBsSty                     = null;\r
-var gBsHtm                     = null;\r
 var gBsStyVisShow      = null;\r
 var gBsStyVisHide      = null;\r
 var gBsClientWidth     = 640;\r
 var gBsClientHeight = 480;\r
-var gBsBrowser         = null;\r
 \r
 // here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.\r
 var gBRateH_W          = 0.618; // 1.618 Golden cut.\r
@@ -792,35 +855,36 @@ function getPopupIFrameName(nIndex)
 \r
 function getPopupTopicStyle(nIndex)\r
 {\r
-       return eval("document.all['" + getPopupTopicID(nIndex) + "']").style;\r
+       return getElement(getPopupTopicID(nIndex)).style;\r
 }\r
 \r
 function getPopupShadowStyle(nIndex)\r
 {\r
-       return eval("document.all['" + getPopupShadowID(nIndex) + "']").style;\r
+       return getElement(getPopupShadowID(nIndex)).style;\r
 }\r
 \r
 function getPopupIFrame(nIndex)\r
 {\r
-\r
-       return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");\r
+       if (gbBsNS6)\r
+               return eval("window.frames['" + getPopupIFrameName(nIndex) + "']");\r
+       else\r
+               return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");\r
 }\r
 \r
 function getPopupDivStyle(nIndex)\r
 {\r
-       return eval("document.all['" + getPopupID(nIndex) + "']").style;\r
+       return getElement(getPopupID(nIndex)).style;\r
 }\r
 \r
 function getPopupIFrameStyle(nIndex)\r
 {\r
-       return eval("document.all['" + getPopupIFrameName(nIndex) + "'].style");\r
+       return getElement(getPopupIFrameID(nIndex)).style;\r
 }\r
 \r
 \r
 function findDiv(strURL)\r
 {\r
-       var i = 0;\r
-       for (i = 0; i < arrayPopupURL.length; i ++ ) {\r
+       for (var i = 0; i < arrayPopupURL.length; i ++ ) {\r
                if (arrayPopupURL[i] == strURL) {\r
                        return i;\r
                }\r
@@ -843,8 +907,7 @@ function IsValidToken(nToken)
 \r
 function addDiv(strURL)\r
 {\r
-       var i = 0; \r
-       for (i = 0; i < arrayPopupURL.length; i ++) {\r
+       for (var i = 0; i < arrayPopupURL.length; i ++) {\r
                if (arrayPopupURL[i] == null) {\r
                        arrayPopupURL[i] = strURL;\r
                        return i;\r
@@ -857,8 +920,7 @@ function addDiv(strURL)
 \r
 function setDirty()\r
 {\r
-       var i = 0;\r
-       for (i = 0; i < arrayPopupURL.length; i ++ )\r
+       for (var i = 0; i < arrayPopupURL.length; i ++ )\r
                arrayDirty[i] = true;\r
 }\r
 \r
@@ -875,15 +937,16 @@ function IsDirty(nIndex)
 \r
 function hideAll()\r
 {\r
-       var i = 0; \r
-       for (i = 0; i < arrayPopupURL.length; i ++ )\r
+       for (var i = 0; i < arrayPopupURL.length; i ++ )\r
+       {\r
                getPopupDivStyle(i).visibility = gBsStyVisHide;\r
+               getPopupIFrameStyle(i).visibility = gBsStyVisHide;\r
+       }\r
 }\r
 \r
 function getCurrentPopupIFrame()\r
 {\r
-       var i = 0;\r
-       for (i = 0; i < arrayPopupURL.length; i ++)\r
+       for (var i = 0; i < arrayPopupURL.length; i ++)\r
                if (getPopupDivStyle(i).visibility == gBsStyVisShow)\r
                        return getPopupIFrame(i);\r
        return null;\r
@@ -909,69 +972,40 @@ function _BSSCCreatePopupDiv(strURL)
                }\r
        }\r
        return nIndex;\r
-\r
 }\r
 \r
-//the browser information itself\r
-function _BSPSBrowserItself()\r
+//Here is the browser type \r
+function _BSPSGetBrowserInfo()\r
 {\r
-       var agent  = navigator.userAgent.toLowerCase();\r
-       this.major = parseInt(navigator.appVersion);\r
-       this.minor = parseFloat(navigator.appVersion);\r
-       this.ns    = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1)));\r
-       this.ns2   = ((this.ns) && (this.major == 2));\r
-       this.ns3   = ((this.ns) && (this.major == 3));\r
-       this.ns4   = ((this.ns) && (this.major >= 4));\r
-       this.ns6   = ((this.ns) && (this.major >= 5));\r
-       this.ie    = (agent.indexOf("msie") != -1);\r
-       this.ie3   = ((this.ie) && (this.major == 2));\r
-       this.ie4   = ((this.ie) && (this.major >= 4));\r
-       this.op3   = (agent.indexOf("opera") != -1);\r
-\r
-       if (this.ns4)\r
+       if (gbBsNS4&&!gbBsNS6)\r
        {\r
-               gBsDoc          = "document";\r
-               gBsSty          = "";\r
-               gBsHtm          = ".document";\r
                gBsStyVisShow   = "show";\r
                gBsStyVisHide   = "hide";\r
-\r
        }\r
-       else if (this.ie4)\r
+       else\r
        {\r
-               gBsDoc           = "document.all";\r
-               gBsSty          = ".style";\r
-               gBsHtm          = "";\r
                gBsStyVisShow   = "visible";\r
                gBsStyVisHide   = "hidden";\r
        }\r
 }\r
 \r
-//Here is the browser type \r
-function _BSPSGetBrowserInfo()\r
-{\r
-       gBsBrowser      = new _BSPSBrowserItself();\r
-}\r
-\r
 _BSPSGetBrowserInfo();\r
 \r
 //Get client size info\r
 function _BSPSGetClientSize()\r
 {\r
-       if (gBsBrowser.ns4)\r
+       if (gbBsNS4||gbBsKonqueror3||gbBsSafari)\r
        {\r
                gBsClientWidth  = innerWidth;\r
                gBsClientHeight = innerHeight;\r
-\r
        }\r
-       else if (gBsBrowser.ie4)\r
+       else if (gbBsIE4 || gbBsOpera7)\r
        {\r
                gBsClientWidth  = document.body.clientWidth;\r
                gBsClientHeight = document.body.clientHeight;\r
        }\r
 }\r
 \r
-\r
 var gstrPopupID = 'BSSCPopup';\r
 var gstrPopupShadowID = 'BSSCPopupShadow';\r
 var gstrPopupTopicID = 'BSSCPopupTopic';\r
@@ -989,33 +1023,29 @@ var gnPopupScreenClickY = 0;
 \r
 var gbPopupTimeoutExpired = false;\r
 \r
-\r
 function DHTMLPopupSupport()\r
 {\r
-       if ((gbBsIE4) && (!gbBsMac)) {\r
+       if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) {\r
                return true;\r
        }\r
        return false;\r
 }\r
 \r
-\r
-\r
 function BSSCPopup_IsPopup()\r
 {\r
        if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {\r
                return true;\r
-       } else if ((gbBsNS4 || gbBsIE4) && (this.name.indexOf(gstrPopupID) != -1)) {\r
+       } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) {\r
                return true;\r
        } else {\r
                return false;\r
        }\r
 }\r
 \r
-\r
 // If there is a hyperlink in a popup window, display the hyperlink in\r
-// the original window.\r
-if (BSSCPopup_IsPopup() && !gbBsIE4) {\r
-       document.write("<base target=\"_parent\">");\r
+// the original window. (bsscright)\r
+if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) {\r
+       document.write("<base target=\"bsscright\">");\r
 }\r
 \r
 // Local functions.\r
@@ -1030,61 +1060,82 @@ function BsPopup_CreateDiv(nIndex)
        strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";\r
        strPopupDiv += "</DIV></DIV>";\r
 \r
-       var objBody = document.all.tags("BODY")[0];\r
+       var objBody = getElementsByTag(document, "BODY")[0];\r
        if( typeof(objBody) != "object" )\r
                return;\r
 \r
-       objBody.insertAdjacentHTML("beforeEnd", strPopupDiv);\r
+       insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv);\r
 }\r
 \r
-function BSSCPopup_Timeout(nIndex, nToken)\r
+function handleLoadNS()\r
 {\r
-    if (!IsValidToken(nToken)) return;\r
+       if (this.id)\r
+       {\r
+               var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length));\r
+               BSSCPopup_PostWork(nIndex);\r
+       }\r
+}\r
 \r
-       if ((getPopupIFrame(nIndex).document.readyState == "complete") &&\r
-               (getPopupIFrame(nIndex).document.body != null)) {\r
-               window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow;\r
-               setClear(nIndex);\r
-               window.gbPopupTimeoutExpired = true;\r
+function BSSCPopup_PostWork(nIndex)\r
+{\r
+       getPopupDivStyle(nIndex).visibility = gBsStyVisShow;\r
+       getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow;\r
 \r
-               BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);\r
+       setClear(nIndex);\r
+       window.gbPopupTimeoutExpired = true;\r
+\r
+       BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);\r
+       if (gbBsNS6)\r
+               getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false);\r
+       else\r
                getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;\r
 \r
-               if (!gbOrignalOnMouseDown && document.onmousedown)\r
-                       gbOrignalOnMouseDown = document.onmousedown;\r
+       if (!gbOrignalOnMouseDown && document.onmousedown)\r
+               gbOrignalOnMouseDown = document.onmousedown;\r
 \r
+       if (gbBsNS6)\r
+               document.addEventListener("mousedown", BSSCPopupParentClicked,false);\r
+       else\r
                document.onmousedown = BSSCPopupParentClicked;\r
+}\r
+\r
+function BSSCPopup_Timeout(nIndex, nToken)\r
+{\r
+    if (!IsValidToken(nToken)) return;\r
 \r
+       if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") &&\r
+               (getPopupIFrame(nIndex).document.body != null))) {\r
+               BSSCPopup_PostWork(nIndex);\r
        } else {\r
                setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);\r
        }\r
 }\r
 \r
-\r
 // VH 08/10/00 \r
 // do not change target to parent if the href is using javascript\r
 function BSSCPopup_ChangeTargettoParent(tagsObject)\r
 {\r
-       var collA = tagsObject.all.tags("A");\r
+       var collA = getElementsByTag(tagsObject, "A");\r
        BSSCPopup_ChangeTargettoParent2(collA);\r
 \r
-       var collIMG = tagsObject.all.tags("IMG");\r
+       var collIMG = getElementsByTag(tagsObject,"IMG");\r
        BSSCPopup_ChangeTargettoParent2(collIMG);\r
 }\r
 \r
 function BSSCPopup_ChangeTargettoParent2(colls)\r
 {\r
-       var j = 0;\r
        if (colls != null)  {\r
-               for (j = 0; j < colls.length; j ++ )\r
+               for (var j = 0; j < colls.length; j ++ )\r
                {\r
                        var strtemp = colls[j].href;\r
-                       strtemp = strtemp.toLowerCase();\r
-                       if (strtemp.indexOf("javascript:") == -1)\r
-                       if (colls[j].target == "")\r
-                               colls[j].target = "_parent";\r
+                       if (strtemp)\r
+                       {\r
+                               strtemp = strtemp.toLowerCase();\r
+                               if (strtemp.indexOf("javascript:") == -1)\r
+                               if (colls[j].target == "")\r
+                                       colls[j].target = "_parent";\r
+                       }\r
                }\r
-\r
        }\r
 }\r
 \r
@@ -1104,33 +1155,26 @@ function _BSSCPopup(strURL, width, height)
        }\r
        \r
        if (DHTMLPopupSupport()) {\r
-               // If we are already in a popup, replace the contents\r
-       //      if (BSSCPopup_IsPopup()) {\r
-       //              parent._BSSCPopup(strURL, cuswidth, cusheight);\r
-       //      } else {\r
-                       var nToken = takeToken(); // take  token first.\r
-                       var nIndex = _BSSCCreatePopupDiv(strURL);\r
-                       window.gbPopupTimeoutExpired = false;\r
-                       var ntWidth = gBsClientWidth;\r
-                       var ntHeight = gBsClientHeight;\r
-                       _BSPSGetClientSize();\r
-                       if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {\r
-                               setDirty();\r
-                       }\r
-\r
+               var nToken = takeToken(); // take  token first.\r
+               var nIndex = _BSSCCreatePopupDiv(strURL);\r
+               window.gbPopupTimeoutExpired = false;\r
+               var ntWidth = gBsClientWidth;\r
+               var ntHeight = gBsClientHeight;\r
+               _BSPSGetClientSize();\r
+               if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {\r
+                       setDirty();\r
+               }\r
 \r
-                       if (IsDirty(nIndex)) {\r
-                               if (gbBsMac) {\r
-                                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);\r
-                               } else {\r
-                                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);\r
-                               }\r
-                       }\r
-                       else {\r
-                               MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);\r
+               if (IsDirty(nIndex)) {\r
+                       if (gbBsMac) {\r
+                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);\r
+                       } else {\r
+                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);\r
                        }\r
-       //      }\r
-\r
+               }\r
+               else {\r
+                       MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);\r
+               }\r
        } else {\r
                _BSSCPopup2(strURL, cuswidth, cusheight);\r
        }\r
@@ -1140,24 +1184,40 @@ function _BSSCPopup(strURL, width, height)
 if (gbBsIE55)\r
 {\r
        var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;\r
+       var gnBsUnload=0;\r
        window.onbeforeunload = window_BUnload;\r
 }\r
        \r
 function window_BUnload()\r
 {\r
+       gnBsUnload++;\r
+       if (gnBsUnload>1)\r
+               return;\r
        for (var i = 0; i < arrayPopupURL.length; i ++)\r
-               document.all(getPopupID(i)).outerHTML = "";\r
+               removeThis(document.all(getPopupID(i)));\r
        arrayPopupURL.length = 0;       \r
        if (ehlpdhtm_fOldBefureUnload)\r
                ehlpdhtm_fOldBefureUnload();\r
 }\r
 \r
 function _BSSCPopup2(strURL, width, height)\r
+{\r
+       if (gbBsOpera6&&gbBsMac)\r
+       {\r
+               var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName);\r
+               wmTemp.close();\r
+               setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100);\r
+       }\r
+       else\r
+               _BSSCPopup3(strURL, width, height);\r
+}\r
+               \r
+function _BSSCPopup3(strURL, width, height)\r
 {\r
        if (window.name == gstrPopupSecondWindowName) {\r
                window.location = strURL;\r
        } else {\r
-               if (!gbBsMac || !gBsBrowser.ns4) {\r
+               if (!gbBsMac || !gbBsNS4) {\r
                        BSSCHidePopupWindow();\r
                }\r
                var nX = 0;\r
@@ -1179,12 +1239,14 @@ function _BSSCPopup2(strURL, width, height)
                if (nX + nWidth + 40 > screen.availWidth) {\r
                        nX = screen.availWidth - nWidth - 40;\r
                }\r
+\r
                // Launch a separate window\r
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";\r
-               if (gBsBrowser.ns) {\r
-                       if (gBsBrowser.ns6) {\r
+               var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";\r
+               if (gbBsNS) {\r
+                       if (gbBsNS6) {\r
                                strParam += ",Height=" + nHeight + ",Width=" + nWidth;\r
                                strParam += ",screenX=" + nX + ",screenY=" + nY;\r
+                               strParam += ",dependent=yes";\r
                        }\r
                        else {\r
                                strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;\r
@@ -1196,21 +1258,50 @@ function _BSSCPopup2(strURL, width, height)
                        strParam += ",height=" + nHeight + ",width=" + nWidth;\r
                        strParam += ",left=" + nX + ",top=" + nY;\r
                }\r
-               window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);\r
-\r
-               if (gBsBrowser.ns4) {\r
-                       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE);\r
-                       window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
-                       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;\r
-               }\r
-               else if (gBsBrowser.ie4)\r
+               if (gbBsSafari)\r
                {\r
-                       setTimeout("setPopupFocus();", 100);\r
+                       if (window.gPopupWindow)\r
+                               window.gPopupWindow.close();            \r
+                       window.gPopupWindow = window.open(strURL, "", strParam);\r
+                       window.gPopupWindow.name = gstrPopupSecondWindowName;\r
+                       window.gPopupWindow.moveTo(nX, nY);\r
+                       widnow.gPopupWindow.document.location.reload();\r
+               }       \r
+               else\r
+               {\r
+                       var wmTemp=null;\r
+                       if (gbBsKonqueror3)\r
+                       {\r
+                               if (window.gPopupWindow)\r
+                                       window.gPopupWindow.close();\r
+                       }\r
+                       if (gbBsOpera&&gbBsMac)\r
+                       {\r
+                               wmTemp= window.open(document.location.href, "Temp", strParam);\r
+                       }\r
+                       window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);\r
+                       if (!gbBsIE)\r
+                               window.gPopupWindow.focus();\r
+                               \r
+                       if (wmTemp)\r
+                               wmTemp.close();\r
                }\r
+\r
+               if (gbBsNS4)\r
+                       setEventHandle();\r
+               else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3)\r
+                       setTimeout("setPopupFocus();", 100);\r
        }\r
        return;\r
 }\r
 \r
+function setEventHandle()\r
+{\r
+       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR);\r
+       window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
+       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;\r
+}\r
+\r
 function setPopupFocus()\r
 {\r
        window.gPopupWindow.focus();\r
@@ -1235,30 +1326,38 @@ function NonIEPopup_HandleClick(e)
        }\r
 \r
        // Close the popup window\r
-       if (e.target.href) {\r
-               if (e.target.target == "")\r
-                       window.location.href = e.target.href;\r
-               else\r
-                       window.open(e.target.href, e.target.target);\r
-                       \r
-               if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) {\r
+       if(e.target.href)\r
+       {\r
+               if(e.target.href.indexOf("javascript:")==-1) \r
+               {\r
+                       if (e.target.target=="")\r
+                               window.location.href = e.target.href;\r
+                       else\r
+                               window.open(e.target.href, e.target.target);\r
                        this.close();\r
                }\r
-       } else {\r
+       } \r
+       else\r
                this.close();\r
-       }\r
        return false;\r
-\r
 }\r
 \r
 function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)\r
 {      \r
-       if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") {\r
+       if (!window.getPopupIFrame(nIndex).document) {\r
                _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);\r
                return;\r
        }\r
+       \r
     if (!IsValidToken(nToken)) return;\r
 \r
+       if (gbBsNS6)\r
+       {\r
+               setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.\r
+               BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);\r
+               return;\r
+       }\r
+       \r
        if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&\r
                (window.getPopupIFrame(nIndex).document.body != null)) {\r
                        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.\r
@@ -1275,7 +1374,6 @@ function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)
        }\r
 }\r
 \r
-\r
 function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)\r
 {\r
        if (window.gbPopupTimeoutExpired) return;\r
@@ -1283,15 +1381,11 @@ function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)
     if (!IsValidToken(nToken)) return;\r
 \r
        getPopupDivStyle(nIndex).visibility = gBsStyVisHide;\r
+       getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide;\r
 \r
        // Determine the width and height for the window\r
-       //var size = new BSSCSize(0, 0);\r
-       //BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
-       //var nWidth = size.x;\r
-       //var nHeight = size.y;\r
-\r
        _BSPSGetClientSize();\r
-       \r
+\r
        var size = new BSSCSize(0, 0);\r
 \r
        if (cuswidth <= 0 || cusheight <= 0)\r
@@ -1308,38 +1402,60 @@ function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)
        // for small popup size, we should allow any size.\r
        // The popup size should be ok if bigger than 0\r
        if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              \r
-       //      if (nWidth < 40 || nHeight < 40) return;  // there must be something terribly wrong.\r
 \r
-       window.getPopupDivStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupDivStyle(nIndex).pixelHeight = nHeight;\r
+       getPopupDivStyle(nIndex).width = nWidth;\r
+       getPopupDivStyle(nIndex).height = nHeight;\r
 \r
-       window.getPopupShadowStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupShadowStyle(nIndex).pixelHeight = nHeight;\r
-       window.getPopupTopicStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupTopicStyle(nIndex).pixelHeight = nHeight;\r
+       getPopupShadowStyle(nIndex).width = nWidth;\r
+       getPopupShadowStyle(nIndex).height = nHeight;\r
+       getPopupTopicStyle(nIndex).width = nWidth;\r
+       getPopupTopicStyle(nIndex).height = nHeight;\r
        if (gbBsIE55)\r
        {\r
-               window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2;\r
-               window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2;\r
-               window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2;\r
-               window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2;\r
+               getPopupShadowStyle(nIndex).width = nWidth + 2;\r
+               getPopupShadowStyle(nIndex).height = nHeight + 2;\r
+               getPopupTopicStyle(nIndex).width = nWidth + 2;\r
+               getPopupTopicStyle(nIndex).height = nHeight + 2;\r
        }\r
 \r
-       window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight;\r
-       if (gbBsIE55)\r
+       getPopupIFrameStyle(nIndex).width = nWidth;\r
+       getPopupIFrameStyle(nIndex).height = nHeight;\r
+       if (gbBsIE55 || gbBsNS6)\r
        {\r
-               window.getPopupIFrameStyle(nIndex).top = 0;\r
-               window.getPopupIFrameStyle(nIndex).left = 0;\r
+               getPopupIFrameStyle(nIndex).top = 0;\r
+               getPopupIFrameStyle(nIndex).left = 0;\r
        }\r
        \r
        var strURL = getPopupURL(nIndex);\r
-       if (strURL.indexOf("#") != -1)\r
+       if (strURL.indexOf("#") != -1&&gbBsNS6)\r
+               getPopupIFrame(nIndex).location.reload();\r
+       else if (strURL.indexOf("#") != -1||gbBsNS6)\r
                getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.\r
                \r
        MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);\r
 }\r
 \r
+function getScrollLeft()\r
+{\r
+       if (document.body.scrollLeft)\r
+               return document.body.scrollLeft;\r
+       else if (window.pageXOffset)\r
+               return window.pageXOffset;\r
+       else\r
+               return 0;\r
+}\r
+\r
+function getScrollTop()\r
+{\r
+       if (document.body.scrollTop)\r
+               return document.body.scrollTop;\r
+       else if (window.pageYOffset)\r
+               return window.pageYOffset;\r
+       else\r
+               return 0;\r
+}\r
+\r
+\r
 function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)\r
 {\r
        if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.\r
@@ -1354,46 +1470,47 @@ function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)
        var nTop = 0;\r
        var nLeft = 0;\r
 \r
-       var nWidth = window.getPopupDivStyle(nIndex).pixelWidth;\r
-       var nHeight = window.getPopupDivStyle(nIndex).pixelHeight;\r
+       var nWidth = parseInt(getPopupDivStyle(nIndex).width);\r
+       var nHeight = parseInt(getPopupDivStyle(nIndex).height);\r
 \r
-       if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) {\r
+       if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) {\r
                nTop = nClickY + 10;\r
        } else {\r
-               nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20;\r
+               nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20;\r
        }\r
-       if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) {\r
+       if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) {\r
                nLeft = nClickX;\r
        } else {\r
-               nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8;\r
+               nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8;\r
        }\r
-       \r
-       if (nTop < document.body.scrollTop ) nTop  = document.body.scrollTop + 1;\r
-       if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1;\r
 \r
+       if (nTop < getScrollTop()) nTop  = getScrollTop() + 1;\r
+       if (nLeft< getScrollLeft())  nLeft = getScrollLeft() + 1;\r
 \r
-       window.getPopupDivStyle(nIndex).left = nLeft;\r
-       window.getPopupDivStyle(nIndex).top = nTop;\r
+       getPopupDivStyle(nIndex).left = nLeft;\r
+       getPopupDivStyle(nIndex).top = nTop;\r
 \r
        // Set the location of the background blocks\r
-       window.getPopupShadowStyle(nIndex).left = 6;\r
-       window.getPopupShadowStyle(nIndex).top = 6;\r
+       getPopupShadowStyle(nIndex).left = 6;\r
+       getPopupShadowStyle(nIndex).top = 6;\r
        if (gbBsIE55)\r
        {\r
-               window.getPopupShadowStyle(nIndex).left = 4;\r
-               window.getPopupShadowStyle(nIndex).top = 4;\r
+               getPopupShadowStyle(nIndex).left = 4;\r
+               getPopupShadowStyle(nIndex).top = 4;\r
        }\r
 \r
-       if (gbBsMac) {\r
+       if (gbBsMac&&gbBsIE4) {\r
                // Total hack on the iMac to get the IFrame to position properly\r
-               window.getPopupIFrameStyle(nIndex).pixelLeft = 100;\r
-               window.getPopupIFrameStyle(nIndex).pixelLeft = 0;\r
+               getPopupIFrameStyle(nIndex).pixelLeft = 100;\r
+               getPopupIFrameStyle(nIndex).pixelLeft = 0;\r
                // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it\r
-               window.getPopupIFrame(nIndex).window.BSSCOnLoad();\r
+               getPopupIFrame(nIndex).window.BSSCOnLoad();\r
        }\r
 \r
-       BSSCPopup_Timeout(nIndex , nToken );\r
-       \r
+       if (gbBsNS6&&IsDirty(nIndex))\r
+               getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false);\r
+       else\r
+               BSSCPopup_Timeout(nIndex , nToken );\r
        return;\r
 }\r
 \r
@@ -1405,12 +1522,12 @@ function        BSSCSize(x, y)
 \r
 function BSSCGetContentSize(thisWindow, size)\r
 {\r
-       if (!((gBsBrowser.ie4) || (gBsBrowser.ns4)))\r
+       if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4)\r
                return;\r
 \r
-       if (gbBsMac) {\r
-               size.x = 300;\r
-               size.y = 300;\r
+       if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) {\r
+               size.x = 320;\r
+               size.y = 180;\r
                return;\r
        }\r
 \r
@@ -1421,6 +1538,7 @@ function BSSCGetContentSize(thisWindow, size)
 \r
        var ClientRate = gBsClientHeight / gBsClientWidth;\r
 \r
+       \r
        var GoldenSize = new BSSCSize(0,0);\r
        GoldenSize.x = gBsClientWidth * gBMaxXOfParent;\r
        GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;\r
@@ -1440,6 +1558,7 @@ function BSSCGetContentSize(thisWindow, size)
        // This double resize causes the document to re-render (and we need it to)\r
        if (!gbBsIE5)\r
                thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.\r
+               \r
        thisWindow.resizeTo(1, 1);\r
        thisWindow.resizeTo(1, 1);\r
        thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
@@ -1486,11 +1605,6 @@ function BSSCGetContentSize(thisWindow, size)
                        size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
                        size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     \r
                        thisWindow.document.body.scroll = 'no';\r
-                       \r
-               // Handle absurd cases just in case IE flakes\r
-       //              if (size.y < 100) {\r
-       //                      size.y = 100;\r
-       //              }\r
                }\r
        }\r
        else {\r
@@ -1503,7 +1617,6 @@ function BSSCGetContentSize(thisWindow, size)
                        //  downsize from maxgoldx , now I try to using binary divide.\r
                        x = maxgoldx;\r
                        deltax = -maxgoldx/2;\r
-                       //i = 0;\r
                        while (true) {\r
                                x = x + deltax;\r
                                thisWindow.resizeTo(x, miny);\r
@@ -1518,10 +1631,7 @@ function BSSCGetContentSize(thisWindow, size)
                                        break;\r
                                if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
                                        break;\r
-                               //i ++;\r
-                               \r
                        }\r
-                       //size.x = x - gBscrollWidth;\r
                        size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
                        size.y = thisWindow.document.body.scrollHeight ;\r
                        thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.\r
@@ -1536,17 +1646,11 @@ function BSSCGetContentSize(thisWindow, size)
                        }\r
                }\r
        }\r
-       \r
-       // no reload no scrollbar.\r
-       //size.x = size.x + 16;  //reserve a width for scrollbar (IE 4.0 only)\r
-\r
        thisWindow.resizeTo(size.x, size.y);\r
        thisWindow.resizeTo(size.x, size.y);\r
        return;\r
 }\r
 \r
-\r
-\r
 function BSSCPopupParentClicked()\r
 {\r
        if (!window.gbPopupTimeoutExpired) {\r
@@ -1563,50 +1667,65 @@ function BSSCPopupParentClicked()
        return true;\r
 }\r
 \r
+function isInsideHyperLink(obj)\r
+{\r
+       if (obj&&obj!=getParentNode(obj))\r
+       {\r
+               if (obj.tagName=="A"||obj.tagName=="IMG")\r
+                       return true;\r
+               else\r
+                       return isInsideHyperLink(getParentNode(obj));\r
+       }\r
+       else\r
+               return false;\r
+}\r
 \r
-function BSSCPopupClicked()\r
+function BSSCPopupClicked(e)\r
 {\r
        if (!window.gbPopupTimeoutExpired) {\r
                return false;\r
        }\r
 \r
-\r
        var popupIFrame = getCurrentPopupIFrame();\r
        if (popupIFrame == null) {\r
                return true;\r
        }\r
 \r
-/*\r
-       if ("undefined" != typeof(popupIFrame.gbInPopupMenu) &&\r
-               popupIFrame.gbInPopupMenu) {\r
-               return true;\r
-       }*/\r
-\r
-       if (!((popupIFrame.window.event != null) &&\r
-           (popupIFrame.window.event.srcElement != null) &&\r
-           ((popupIFrame.window.event.srcElement.tagName == "A") ||\r
-           (popupIFrame.window.event.srcElement.tagName == "IMG")))) {\r
+       if (gbBsIE4 && (!((popupIFrame.window.event != null) &&\r
+               (popupIFrame.window.event.srcElement != null) &&\r
+               isInsideHyperLink(popupIFrame.window.event.srcElement)))) {\r
                document.onmousedown = gbOrignalOnMouseDown;\r
-\r
-       // Simply hide the popup\r
+               \r
+               // Simply hide the popup\r
                hideAll();\r
-\r
                window.gbPopupTimeoutExpired = false;\r
-\r
                return true;\r
        }\r
+       else if (gbBsNS6 && (!((e != null) &&\r
+                       (e.target!= null) && isInsideHyperLink(e.target))))\r
+       {\r
+               document.addEventListener("mousedown", gbOrignalOnMouseDown,false);\r
+               // Simply hide the popup\r
+               hideAll();\r
+               window.gbPopupTimeoutExpired = false;\r
+               return true;            \r
+       }\r
 }\r
 \r
-\r
 //trace the mouse over's position for hotspot\r
 function  BSPSPopupOnMouseOver(event)\r
 {\r
-       if (gBsBrowser.ie4) {\r
-               window.gnPopupClickX = event.clientX + document.body.scrollLeft;\r
-               window.gnPopupClickY = event.clientY + document.body.scrollTop;\r
+       if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) {\r
+               window.gnPopupClickX = event.clientX + getScrollLeft();\r
+               window.gnPopupClickY = event.clientY + getScrollTop();\r
                window.gnPopupScreenClickX = event.screenX;\r
                window.gnPopupScreenClickY = event.screenY;\r
-       } else if (gBsBrowser.ns4) {\r
+       } else if (gbBsSafari) {\r
+               window.gnPopupClickX = event.clientX + getScrollLeft();\r
+               window.gnPopupClickY = event.clientY + getScrollTop();\r
+               window.gnPopupScreenClickX = event.screenX + window.screenX;\r
+               window.gnPopupScreenClickY = event.screenY + window.screenY;\r
+       } else if (gbBsNS4) {\r
                window.gnPopupClickX = event.pageX - window.pageXOffset;\r
                window.gnPopupClickY = event.pageY - window.pageYOffset;\r
                window.gnPopupScreenClickX = event.screenX - window.pageXOffset;\r
@@ -1614,18 +1733,16 @@ function  BSPSPopupOnMouseOver(event)
        }\r
 }\r
 \r
-\r
 function BSSCHidePopupWindow()\r
 {\r
        if (window.gPopupWindow != null) {\r
-               if (gBsBrowser.ns4) {\r
+               if (gbBsNS4) {\r
                        if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {\r
                                window.gPopupWindow.close();\r
                                window.gPopupWindow = null;\r
                        }\r
                }\r
        }\r
-\r
        return;\r
 }\r
 \r
@@ -1640,56 +1757,33 @@ if (typeof(BsscRegisterOnClick) != "undefined")
 \r
 /// Section Begin - Embedded Stub (JavaScript 1.0)\r
 \r
-var s_strAgent = navigator.userAgent.toLowerCase();\r
-var s_nVer        = parseInt(navigator.appVersion);\r
-\r
-var s_bIE  = (s_strAgent.indexOf('msie') != -1);\r
-var s_bNS  = (s_strAgent.indexOf('mozilla') != -1) && ((s_strAgent.indexOf('spoofer') == -1) && (s_strAgent.indexOf('compatible') == -1));\r
-var s_bOpera   = (s_strAgent.indexOf('opera') != -1);\r
-\r
-var s_bIE3Before = ((s_bIE) && (s_nVer <= 2));\r
-var s_bNS3Before = ((s_bNS) && (s_nVer <= 3));\r
-\r
-var s_bNS2             = ((s_bNS) && (s_nVer <= 2));\r
-var s_bNS3             = ((s_bNS) && (s_nVer == 3));\r
-var s_bIE300301        = ((s_bIE) && (s_nVer == 2) && ((s_strAgent.indexOf("3.00") != -1)||(s_strAgent.indexOf("3.0a") != -1)||(s_strAgent.indexOf("3.0b")!=-1)||(s_strAgent.indexOf("3.01")!=-1)));\r
-var s_bIE302   = ((s_bIE) && (s_nVer == 2) && (s_strAgent.indexOf("3.02") != -1));\r
-\r
-\r
-function HasExtJs()\r
-{\r
-       if (s_bIE3Before) { return false;}\r
-       if (s_bNS3Before) {     return false;}\r
-       if (typeof (BsGeneralOnLoad) == "undefined"){ return false; }\r
-       return true;\r
-}\r
-\r
-\r
 function BSSCCreatePopupDiv()\r
 {\r
        return;\r
 }\r
 \r
-\r
 function WritePopupMenuLayer()\r
 {\r
-       if (HasExtJs()) {_WritePopupMenuLayer();}\r
+       if (BsscHasExtJs()) {_WritePopupMenuLayer();}\r
 }\r
 \r
 function BSSCPopup(strURL, width, height)\r
 {\r
-       if (HasExtJs()) { \r
+       var re = new RegExp("'", 'g');\r
+       strURL = strURL.replace(re, "%27");\r
+\r
+       if (BsscHasExtJs())     { \r
                _BSSCPopup(strURL, width, height);\r
        }else{\r
                //Create a temporary window first to ensure the real popup comes up on top\r
                var wndTemp = null;\r
-               if (!s_bNS3) {\r
+               if (!gbBsNS3) {\r
                        wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
                }\r
                // Create the real popup window\r
                var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");\r
                // Close the temporary\r
-               if (!s_bNS3) {\r
+               if (!gbBsNS3) {\r
                        wndTemp.close();\r
                } else {\r
                        wndPopup.focus();\r
@@ -1702,10 +1796,17 @@ var gbstrParaTotal = "";
 \r
 function PopupMenu_Invoke()\r
 {\r
-       if (HasExtJs()) {\r
+       if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function')\r
+       {\r
+               if (Number(gsSkinVersion) > 2 && IsFlashSupported())\r
+               {\r
+                       return wfRelatedTopic(PopupMenu_Invoke.arguments);\r
+               }\r
+       }\r
+       if (BsscHasExtJs()) {\r
                return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);\r
        }\r
-       if (s_bNS3Before || s_bIE3Before )      {\r
+       if (gbBsNS3Before || gbBsIE3Before )    {\r
                var argLen      = PopupMenu_Invoke.arguments.length;\r
                if (argLen < 5) {\r
                        window.document.location.href = PopupMenu_Invoke.arguments[3];\r
@@ -1716,7 +1817,7 @@ function PopupMenu_Invoke()
                gbstrParaTotal = "";\r
                for (var i = 0; i < (argLen - 2) / 2; i++) {\r
                        var strParaLine = "";\r
-                       if (s_bNS2 || s_bOpera){\r
+                       if (gbBsNS2){\r
                                strParaLine += "<a href=\"";\r
                                strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
                                strParaLine += "\">"\r
@@ -1744,7 +1845,7 @@ function PopupMenu_Invoke()
                \r
                //Create a temporary window first to ensure the real popup comes up on top\r
                //var wndTemp = null;\r
-               if (!s_bNS3) {\r
+               if (!gbBsNS3) {\r
                        gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
                } \r
                gbWndPopupLinks = window.open("", "popuplinks", strParam);\r
@@ -1763,13 +1864,12 @@ function Wait_PopupMenuReady()
                setTimeout("Wait_PopupMenuReady()", 100);\r
 }\r
 \r
-\r
 function PopupMenu_InvokeReady()\r
 {\r
        if (gbWndPopupLinks != null) {\r
                gbWndPopupLinks.document.open("text/html");\r
                gbWndPopupLinks.document.write("<html><head>");\r
-               if (s_bNS2 || s_bOpera) {\r
+               if (gbBsNS2) {\r
                        gbWndPopupLinks.document.write("<base href=\"" + location +"\">");\r
                } else {\r
                        //YJ: IE301,302 and NS3.x works fine\r
@@ -1785,7 +1885,7 @@ function PopupMenu_InvokeReady()
                gbWndPopupLinks.document.close();\r
 \r
                // Close the temporary\r
-               if (!s_bNS3 && gbWndTemp != null) {\r
+               if (!gbBsNS3 && gbWndTemp != null) {\r
                        gbWndTemp.close();\r
                }else {\r
                        gbWndPopupLinks.focus();\r
@@ -1811,18 +1911,21 @@ function kadovIsParagraph(el)
 \r
 function kadovInitEachChild(el)\r
 {      \r
-       for(var i=0; i<el.children.length; i++)\r
+       for(var i=0; i<getChildNodes(el).length; i++)\r
        {\r
-               var child = el.children[i];\r
+               var child = getChildNodes(el)[i];\r
                if( child.tagName == "SCRIPT" || child.tagName == "!" )\r
                        continue;\r
 \r
                if( child.id != "" )\r
                {\r
                        // to wipe out the onload effects\r
-                       var onLoadEffect = child.style.getAttribute( "x-on-pageload" );\r
-                       if( (onLoadEffect != null) && (onLoadEffect > "") )\r
-                               child.style.setAttribute( "x-on-pageload", "" );\r
+                       if (gbBsIE4&&!gbBsMac)\r
+                       {\r
+                               var onLoadEffect = child.style.getAttribute( "x-on-pageload" );\r
+                               if( (onLoadEffect != null) && (onLoadEffect > "") )\r
+                                       child.style.setAttribute( "x-on-pageload", "" );\r
+                       }\r
                        \r
                        var href = child.getAttribute("href")\r
                        if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )\r
@@ -1861,8 +1964,8 @@ function kadovRetrieveTextInner(el)
        }\r
        else\r
        {\r
-               for(var i=0; i<el.children.length; i++)\r
-                       x += kadovRetrieveTextInner( el.children[i] );\r
+               for(var i=0; i<getChildNodes(el).length; i++)\r
+                       x += kadovRetrieveTextInner( getChildNodes(el)[i] );\r
        }\r
        return x;\r
 }\r
@@ -1914,12 +2017,16 @@ function kadovAdjustObjectTag(strRawHTML, nStartPos)
                return strRawHTML;\r
        \r
        // does the commented object tag contain a items parameters             \r
-       var strRTItemsOpen = '<param name=Items value="';\r
+       var strRTItemsOpen = '<param name="Items" value="';\r
        var strRTItemsClose = '$$**$$" >';\r
+       var strRTItemsClose2 = '$$**$$">';\r
+\r
        var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);\r
        if( nRTItemsOpen < nDTCTagOpen )\r
                return strRawHTML;\r
        var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);\r
+       if (nRTItemsClose == -1)\r
+               nRTItemsClose = strRawHTML.indexOf(strRTItemsClose2, nRTItemsOpen);\r
        if( nRTItemsClose < nRTItemsOpen )\r
                return strRawHTML;\r
                \r
@@ -1948,90 +2055,184 @@ function kadovAdjustObjectTag(strRawHTML, nStartPos)
 \r
 function kadovTextPopupOnLoad( el )\r
 {\r
-       if( !CCSSP.bIsWinOS && !CCSSP.bIsSunOS)\r
-               return 0;\r
-\r
        if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
+               el = getElement(el);\r
 \r
        var src = el.getAttribute( "x-use-popup" );\r
+       var bNeedMove=true;\r
+       if(!src&&el.id)\r
+       {\r
+               for (var i=0;i<gPopupData.length;i++)\r
+                       if (gPopupData[i].el==el.id)\r
+                       {\r
+                               src=gPopupData[i].popupId;\r
+                               bNeedMove=false;\r
+                               break;\r
+                       }\r
+       }\r
        if(!src)\r
+               src = el.style.getAttribute( "x-use-popup" );   \r
+       if (!src)       \r
                return 0;\r
 \r
        var name = src;\r
        if( src.substr(0,1) == "#" ) \r
                name = src.substr(1, src.length-1);\r
-       var srcDiv = document.all.item(name);\r
+       var srcDiv = getElement(name);\r
        if( !srcDiv )\r
                return 1;\r
 \r
-       var type = el.getAttribute( "x-popup-type" );\r
-       var setup = el.getAttribute( "x-tmp-setup" );\r
-       var newId = name;\r
-       if( newId.indexOf( "_tmp") <= 0 )\r
-               newId += "_tmp";\r
-\r
-       if( !setup )\r
+       if (bNeedMove)\r
        {\r
-               el.setAttribute( "x-tmp-setup", 1 );\r
-       \r
-               if( type == "pulldown"  )\r
+               var type = el.getAttribute( "x-popup-type" );\r
+               if (!type)\r
+                       type = el.style.getAttribute("x-popup-type");\r
+               if (!type)              \r
+                       return 1;               \r
+               var setup = el.getAttribute( "x-tmp-setup" );\r
+               var newId = name;\r
+               if( newId.indexOf( "_tmp") <= 0 )\r
+                       newId += "_tmp";\r
+\r
+               if( !setup)\r
                {\r
-                       var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);\r
-                       var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
-                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
+                       el.setAttribute( "x-tmp-setup", 1 );\r
 \r
-                       //work around the bug in HH.exe that highlight the phrases when use Search tab\r
-                       //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime\r
-                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);\r
-                       \r
-                       var strStyle = " style='display:none; position:relative;";\r
-                       var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";\r
+                       if( type == "pulldown"  )\r
+                       {\r
+                               var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);\r
+                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
+                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
+                               \r
+                               //work around the bug in HH.exe that highlight the phrases when use Search tab\r
+                               //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime\r
+                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);\r
+                               \r
+                               var strStyle = " style='display:none; position:relative;";\r
+                               var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";\r
 \r
-                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
-                       var elParentPra = kadovFindParentParagraph(el);\r
-                       if( elParentPra )\r
-                               elParentPra.insertAdjacentHTML( "AfterEnd", newDiv );\r
+                               removeThis(srcDiv); // empty the original DIV tag\r
+                               var elParentPra = kadovFindParentParagraph(el);\r
+                               if( elParentPra )\r
+                                       insertAdjacentHTML(elParentPra, "afterEnd", newDiv );\r
+                       }\r
+                       else if( type == "expanding"  )\r
+                       {\r
+                               var inner = kadovRetrieveTextInner(srcDiv);\r
+                               if( inner == "" )\r
+                                       inner = srcDiv.innerHTML;\r
+                               var strAdjust = kadovAdjustObjectTag(inner,0);\r
+                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
+                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
+                               var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";\r
+                               var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";\r
+                               removeThis(srcDiv); // empty the original DIV tag\r
+                               insertAdjacentHTML(el, "afterEnd", newSpan );\r
+                       }\r
                }\r
-               else if( type == "expanding"  )\r
+       }\r
+       else\r
+       {\r
+               srcDiv.style.display = "none";\r
+       }\r
+       return 0;\r
+}\r
+\r
+function getElementsByTag(obj,sTagName)\r
+{\r
+       if(obj.getElementsByTagName)\r
+               return obj.getElementsByTagName(sTagName);\r
+       else if(obj.all)\r
+               return obj.all.tags(sTagName);\r
+       return null;\r
+}\r
+\r
+function getElement(sID)\r
+{\r
+       if(document.getElementById)\r
+               return document.getElementById(sID);\r
+       else if(document.all)\r
+               return document.all(sID);\r
+       return null;\r
+}\r
+\r
+function getParentNode(obj)\r
+{\r
+       if(obj.parentNode)\r
+               return obj.parentNode;\r
+       else if(obj.parentElement)\r
+               return obj.parentElement;\r
+       return null;\r
+}\r
+\r
+function getChildNodes(obj)\r
+{\r
+       if(obj.childNodes)\r
+       {\r
+               var children = new Array();\r
+               for (var i = 0; i < obj.childNodes.length; i++)\r
                {\r
-                       var inner = kadovRetrieveTextInner(srcDiv);\r
-                       if( inner == "" )\r
-                               inner = srcDiv.innerHTML;\r
-                       var strAdjust = kadovAdjustObjectTag(inner,0);\r
-                       var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
-                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
-                       var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";\r
-                       var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";\r
-                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
-                       el.insertAdjacentHTML( "AfterEnd", newSpan );\r
+                       if (obj.childNodes[i].nodeType == 1)\r
+                               children[children.length] = obj.childNodes[i];\r
                }\r
+               return children;\r
        }\r
-       return 0;\r
+       else if(obj.children)\r
+               return obj.children;\r
+       return null;    \r
+}\r
+\r
+function removeThis(obj)\r
+{\r
+       if(obj.parentNode)\r
+               obj.parentNode.removeChild(obj);\r
+       else\r
+               obj.outerHTML="";\r
 }\r
 \r
 function kadovTextPopup( el )\r
 {\r
-       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS) || (window.event == null) )\r
+       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 )\r
                return;\r
-       window.event.cancelBubble = true;\r
+\r
+       var bNeedMove=true;\r
+       \r
+       if (window.event)\r
+               window.event.cancelBubble = true;\r
 \r
        if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
+               el = getElement(el);\r
 \r
+       if (!el||el==window)\r
+               return;\r
+       \r
        var src = el.getAttribute( "x-use-popup" );\r
+       if(!src&&el.id)\r
+       {\r
+               for (var i=0;i<gPopupData.length;i++)\r
+                       if (gPopupData[i].el==el.id)\r
+                       {\r
+                               src=gPopupData[i].popupId;\r
+                               bNeedMove=false;\r
+                               break;\r
+                       }\r
+       }\r
+       if(!src)\r
+               src = el.style.getAttribute( "x-use-popup" );   \r
        if(!src)\r
                return;\r
-\r
+               \r
        var name = src;\r
        if( src.substr(0,1) == "#" ) \r
+       if (bNeedMove)\r
                name = src.substr(1, src.length-1) + "_tmp";\r
-       var srcDiv = document.all.item(name);\r
+       else\r
+               name = src.substr(1, src.length-1);\r
+\r
+       var srcDiv = getElement(name);\r
        if( !srcDiv )\r
                return;\r
 \r
-       var type = el.getAttribute( "x-popup-type" );\r
-       var setup = el.getAttribute( "x-tmp-setup" );\r
        if( srcDiv )\r
        {\r
                if( srcDiv.style.display == "" )\r
@@ -2047,19 +2248,21 @@ function kadovTextPopup( el )
                        }\r
                }\r
        }\r
+       if(gbBsIE4)\r
+               event.returnValue=false;\r
        return;\r
 }\r
 \r
 function kadovFindParentParagraph( el )\r
 {\r
        if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
+               el = getElement(el);\r
        if( (!el) || el.tagName == "BODY" )\r
                return null;\r
-       if( kadovIsParagraph(el.parentElement) )\r
-               return el.parentElement;\r
+       if( kadovIsParagraph(getParentNode(el)) )\r
+               return getParentNode(el);\r
        else\r
-               return kadovFindParentParagraph( el.parentElement );\r
+               return kadovFindParentParagraph( getParentNode(el) );\r
 }\r
 \r
 //Begin HTML code invoked function\r
@@ -2070,17 +2273,32 @@ function kadovRegisterEventHandler( obj, strEvent, strEventHandler )
        CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );\r
 }\r
 \r
-function kadovTextPopupInit( el )\r
+function textPopupData(el, popupId)\r
+{\r
+       this.el = el;\r
+       this.popupId = "#"+popupId;\r
+}\r
+\r
+var gPopupData = new Array();\r
+\r
+function kadovTextPopupInit( el, popupId)\r
 {\r
-       if( (!gbBsIE4) || (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS))\r
+       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3)\r
                return;\r
                \r
        if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
+       {\r
+               if (popupId)\r
+               {\r
+                       gPopupData[gPopupData.length]=new textPopupData(el, popupId);\r
+               }\r
+               el = getElement(el);\r
+       }\r
+               \r
        if( el != null )\r
        {\r
-               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(" + el.id +");" );\r
-               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(" + el.id +");" );\r
+               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(\"" + el.id +"\");" );\r
+               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(\"" + el.id +"\");" );\r
        }\r
 }\r
 //End HTML code invoked function\r
@@ -2101,10 +2319,8 @@ function kadovInitTriggersInHead( )
 //Begin HTML code invoked function\r
 function kadovFilePopupInit( el )\r
 {\r
-       if( !gbBsIE4 )\r
-               return;\r
        if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
+               el = getElement(el);\r
 \r
        if( el != null )\r
                CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );\r
@@ -2117,7 +2333,7 @@ function kadovInitTrigger( element )
        var srcElement = element;\r
        if( typeof(srcElement) == "string" )\r
        {\r
-               srcElement = document.all.item(element,0);\r
+               srcElement = getElement(element,0);\r
                if(srcElement == null)\r
                        return;\r
        }\r
@@ -2126,6 +2342,10 @@ function kadovInitTrigger( element )
                return;\r
 \r
        var targets = srcElement.getAttribute( "x-targets" );\r
+       if (!targets)\r
+               targets = srcElement.style.getAttribute("x-targets");\r
+       if (!targets)\r
+               return; \r
        var arrOneTarget = targets.split( "," );\r
        for( var i = 0; i < arrOneTarget.length; i ++ )\r
                bsscFXInit( element, arrOneTarget[i], null, null, null, null );\r
@@ -2134,13 +2354,13 @@ function kadovInitTrigger( element )
 function kadovIsParentVisible( el )\r
 {\r
        if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
+               el = getElement(el);\r
        if( (!el) || el.tagName == "BODY" )\r
                return true;\r
        if( el.style.display == 'none' ) //el.visibility == 'hidden' || \r
                return false;\r
        else\r
-               return kadovIsParentVisible( el.parentElement );\r
+               return kadovIsParentVisible( getParentNode(el) );\r
 }\r
 \r
 function kadovInitEffects( element )\r
@@ -2150,7 +2370,7 @@ function kadovInitEffects( element )
        var srcElement = element;\r
        if( typeof(srcElement) == "string" )\r
        {\r
-               srcElement = document.all.item(element,0);\r
+               srcElement = getElement(element,0);\r
                if(srcElement == null)\r
                        return;\r
        }\r
@@ -2247,7 +2467,7 @@ function kadovTranslateProp( prop )
 function bsscFXInit( trigger_ID, target_ID, event_type, \r
        action_type, action_setting, event_addional )\r
 {\r
-       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS ) || typeof(target_ID) != "string" )//MUST have a target_ID\r
+       if( (!gbBsWindows && !gbBsSunOS  && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID\r
                return; // we don't support Navigator yet\r
        \r
        if( typeof(event_type) == "string" )\r
@@ -2271,40 +2491,23 @@ function bsscFXInit( trigger_ID, target_ID, event_type,
 }      \r
 //End the definition of one entry to DHTML effects\r
 \r
-\r
 /// Section End  - kadov DHTM (JavaScript 1.2)\r
 \r
-\r
 /// Section Begin  - CCSSP DHTM (JavaScript 1.2)\r
 \r
 //Begin JavaScript libary for cross-platform positioning object.\r
 function CCSSP(){} // constructor of CCSSP class\r
 \r
-CCSSP.strAgent = navigator.userAgent.toLowerCase(); \r
-CCSSP.nAppVersion = parseInt(navigator.appVersion);\r
-\r
-CCSSP.bIsWinOS = ((CCSSP.strAgent.indexOf("win") >= 0) || (CCSSP.strAgent.indexOf("16bit") >= 0));\r
-CCSSP.bIsMacOS = (CCSSP.strAgent.indexOf("mac") >= 0);\r
-CCSSP.bIsSunOS = (CCSSP.strAgent.indexOf("sunos") != -1);\r
-\r
-CCSSP.bIsIE = (navigator.appName.indexOf("Microsoft") >= 0);\r
-CCSSP.bIsIE4 = (CCSSP.bIsIE && (CCSSP.nAppVersion >= 4));\r
-CCSSP.bIsIE5 = (CCSSP.bIsIE4 && (CCSSP.strAgent.indexOf("msie 5") != -1) )\r
-\r
-CCSSP.bIsNav = (navigator.appName.indexOf("Netscape") >= 0);\r
-CCSSP.bIsNav4 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 4));\r
-CCSSP.bIsNav6 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 5));\r
-\r
 CCSSP.GetObject = function( obj )\r
 {//convert object name string or reference into a valid object reference\r
        if( typeof(obj) == "object" )\r
                return obj;\r
        else if( typeof(obj) == "string" && obj != "")\r
        {\r
-               if( CCSSP.bIsNav4 )\r
+               if( gbBsNS4 )\r
                        return eval("document." + obj);\r
                else\r
-                       return eval("document.all." + obj);\r
+                       return eval("document.all(\"" + obj + "\")");\r
        }\r
        else\r
                return null;\r
@@ -2312,7 +2515,7 @@ CCSSP.GetObject = function( obj )
 \r
 CCSSP.MoveObjectTo = function(obj, x, y)\r
 {//positioning an object at a specific pixel coordinate\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                obj.moveTo(x,y);\r
        else\r
        {\r
@@ -2323,7 +2526,7 @@ CCSSP.MoveObjectTo = function(obj, x, y)
 \r
 CCSSP.MoveObjectBy = function(obj, dx, dy)\r
 {//moveing a object by x and/or y pixel\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                obj.moveBy(dx,dy);\r
        else\r
        {\r
@@ -2334,7 +2537,7 @@ CCSSP.MoveObjectBy = function(obj, dx, dy)
 \r
 CCSSP.SetObjectBGColor = function(obj, color)\r
 {//set the background color of an object\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                obj.bgColor = color;\r
        else\r
                obj.style.backgroundColor = color;\r
@@ -2342,7 +2545,7 @@ CCSSP.SetObjectBGColor = function(obj, color)
 \r
 CCSSP.ShowObject = function(obj, bShow)\r
 {// set the object to be visible or invisible\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                obj.visibility = (bShow == true) ? 'show' : 'hide';\r
        else\r
                obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.\r
@@ -2350,7 +2553,7 @@ CCSSP.ShowObject = function(obj, bShow)
 \r
 CCSSP.GetObjectLeft = function(obj)\r
 {// retrieve the x coordinate of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.left;\r
        else\r
                return obj.style.pixelLeft;\r
@@ -2358,7 +2561,7 @@ CCSSP.GetObjectLeft = function(obj)
 \r
 CCSSP.GetObjectTop = function(obj)\r
 {// retrieve the y coordinate of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.top;\r
        else\r
                return obj.style.pixelTop;\r
@@ -2366,7 +2569,7 @@ CCSSP.GetObjectTop = function(obj)
 \r
 CCSSP.GetObjectContainLeft = function(obj)\r
 {// retrieve the x coordinate of a posionable object relative to it's parent element\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.pageX;\r
        else\r
        {\r
@@ -2379,7 +2582,7 @@ CCSSP.GetObjectContainLeft = function(obj)
 \r
 CCSSP.GetObjectWindowLeft = function(obj)\r
 {// retrieve the x coordinate of a posionable object relative to browser window\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.pageX;\r
        else\r
        {\r
@@ -2392,7 +2595,7 @@ CCSSP.GetObjectWindowLeft = function(obj)
 \r
 CCSSP.GetObjectContainTop = function(obj)\r
 {// retrieve the y coordinate of a posionable object relative to it's parent element\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.pageY;\r
        else\r
        {\r
@@ -2405,7 +2608,7 @@ CCSSP.GetObjectContainTop = function(obj)
 \r
 CCSSP.GetObjectWindowTop = function(obj)\r
 {// retrieve the y coordinate of a posionable object relative to browser window\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.pageY;\r
        else\r
        {\r
@@ -2418,7 +2621,7 @@ CCSSP.GetObjectWindowTop = function(obj)
 \r
 CCSSP.GetObjectHeight = function(obj)\r
 {// retrieve the height of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.clip.height;\r
        else\r
                return obj.offsetHeight;\r
@@ -2426,7 +2629,7 @@ CCSSP.GetObjectHeight = function(obj)
 \r
 CCSSP.GetObjectWidth = function(obj)\r
 {// retrieve the width of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return obj.clip.width;\r
        else\r
                return obj.offsetWidth;\r
@@ -2434,10 +2637,12 @@ CCSSP.GetObjectWidth = function(obj)
 \r
 CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )\r
 { // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined\r
-       if (CCSSP.bIsNav4 && !CCSSP.bIsNav6)\r
+       if (gbBsNS4 && !gbBsNS6)\r
                return ;\r
+               \r
        var oldHandler = "";\r
-       if (CCSSP.bIsMacOS && CCSSP.bIsIE4)\r
+\r
+       if (gbBsMac &&gbBsIE4&&!gbBsIE5)\r
        {\r
                if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")\r
                { //search for <SCRIPT> tag which define the event handler\r
@@ -2463,7 +2668,7 @@ CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )
                        if( bodyStart > 0 || bodyEnd > bodyStart )\r
                                oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );\r
                }\r
-               else if( CCSSP.bIsIE4 )\r
+               else if( gbBsIE4 )\r
                { //search for <SCRIPT> tag which define the event handler\r
                        for( var i = 0; i < document.scripts.length; i++ ) \r
                        {\r
@@ -2475,29 +2680,31 @@ CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )
                                }\r
                        }\r
                }\r
-       }       \r
+       }\r
        if( oldHandler.indexOf(funcHandler) >= 0 )\r
                return;// to prevent register the funtion twice.\r
 \r
-       if( CCSSP.bIsNav4 ) // only "onload, onresize, onfocus" apply to window\r
+       if( gbBsNS4 ) // only "onload, onresize, onfocus" apply to window\r
        {// other raw events will apply to layer\r
                var noOn = rawEventName.substring(2, rawEventName.length);\r
                if( typeof(noOn) == "string" && noOn.length > 3 ) {\r
-                       srcObj.captureEvents( Event[noOn.toUpperCase()] );\r
+                       if (srcObj.captureEvents)\r
+                               srcObj.captureEvents( Event[noOn.toUpperCase()] );\r
                }\r
        }\r
-\r
+       \r
        var newHandler = oldHandler;\r
        if( newHandler.length == 0 )\r
                newHandler = funcHandler;\r
        else\r
                newHandler += "; " + funcHandler;\r
+       \r
        srcObj[rawEventName.toLowerCase()] = new Function( newHandler );\r
 }\r
 \r
 CCSSP.GetWindowHeight = function()\r
 {// retrieve the height of available content in browser window\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return window.innerHeight;\r
        else\r
                return document.body.clientHeight;\r
@@ -2505,7 +2712,7 @@ CCSSP.GetWindowHeight = function()
 \r
 CCSSP.GetWindowBottom = function()\r
 {// retrieve the bottom postion of browser window\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return window.outerHeight + window.pageYOffset;\r
        else\r
                return document.body.clientHeight + document.body.scrollTop;\r
@@ -2513,7 +2720,7 @@ CCSSP.GetWindowBottom = function()
 \r
 CCSSP.GetWindowWidth = function()\r
 {// retrieve the width of available content in browser window\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return window.innerWidth;\r
        else\r
                return document.body.clientWidth;\r
@@ -2521,7 +2728,7 @@ CCSSP.GetWindowWidth = function()
 \r
 CCSSP.GetWindowRight = function()\r
 {// retrieve the right postion of browser window\r
-       if( CCSSP.bIsNav4 )\r
+       if( gbBsNS4 )\r
                return window.outerWidth + window.pageXOffset;\r
        else\r
                return document.body.clientWidth + document.body.scrollLeft;\r
@@ -2556,8 +2763,8 @@ CCSSP.TrimSpace = function( objString )
 \r
 CCSSP.GetEventElement = function( navEventObject )\r
 {// to get the element who fired the current event\r
-       if(CCSSP.bIsNav4 \r
-               if (CCSSP.bIsNav6)\r
+       if(gbBsNS4\r
+               if (gbBsNS6)\r
                        return null;\r
                else\r
                         navEventObject.target;\r
@@ -2581,10 +2788,10 @@ CCSSP.IsDescendant = function( progenitor, progeny )
                return true; \r
        else if( progeny.id == progenitor.id ) \r
                return true; \r
-       else if( progeny.parentElement == progenitor.parentElement )\r
+       else if( getParentNode(progeny) == getParentNode(progenitor))\r
                return false;\r
        else\r
-               return CCSSP.IsDescendant( progenitor, progeny.parentElement );\r
+               return CCSSP.IsDescendant( progenitor, getParentNode(progeny));\r
 }\r
 \r
 CCSSP.IsTextTag = function( Obj )\r
@@ -2670,33 +2877,33 @@ CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )
                return new CAgencyElastic(this.eleTarget, action_setting);\r
                \r
     case "fadein" : \r
-       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;\r
+       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;\r
     case "fadeout" :\r
-       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;\r
+       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;\r
     case "rockrollstatic" :\r
     case "rockroll" :\r
-       return (CCSSP.bIsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;\r
+       return (gbBsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;\r
  \r
     case "glow":\r
-       return (CCSSP.bIsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;\r
+       return (gbBsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;\r
     case "dropshadow":\r
-       return (CCSSP.bIsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;\r
+       return (gbBsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;\r
     case "transition" :\r
-       return (CCSSP.bIsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;\r
+       return (gbBsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;\r
     case "blur" :\r
-       return (CCSSP.bIsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;\r
+       return (gbBsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;\r
 \r
     case "fliph" : // all these 4 do NOT need any parameters\r
     case "flipv" :\r
     case "invert":\r
     case "gray" :\r
-       return (CCSSP.bIsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;\r
+       return (gbBsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;\r
     \r
     case "fontchange": // the effects below change the style on the fly, so won't work in Navigator\r
-       return (CCSSP.bIsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;\r
+       return (gbBsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;\r
     case "boderchange": \r
     case "stylechange":\r
-       return (CCSSP.bIsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;\r
+       return (gbBsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;\r
 \r
        default: return null;\r
        }\r
@@ -3071,7 +3278,7 @@ function CAgencyFly( element, settings, bIsIn )
                }\r
        }\r
                \r
-       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
+       if( gbBsIE5 && this.ele.style.position != "absolute" )\r
                this.ele.style.position = "relative";\r
        this.timer = null;\r
        this.aniIndex = CEngine.arrAnimation.length;\r
@@ -3203,7 +3410,7 @@ function CAgencySpiral( element, settings, bIsIn )
                }\r
        }\r
 \r
-       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
+       if( gbBsIE5 && this.ele.style.position != "absolute" )\r
                this.ele.style.position = "relative";\r
        this.timer = null;\r
        this.aniIndex = CEngine.arrAnimation.length;\r
@@ -3287,7 +3494,7 @@ function CAgencyElastic( element, settings)
                }\r
        }\r
                \r
-       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
+       if( gbBsIE5 && this.ele.style.position != "absolute" )\r
                this.ele.style.position = "relative";\r
        this.timer = null;\r
        this.aniIndex = CEngine.arrAnimation.length;\r
@@ -3463,7 +3670,7 @@ CAgencyZoom.prototype.ResetParameters = function()
 CAgencyZoom.prototype.ResetParametersAllChildren = function( child )\r
 {\r
        CCSSP.ShowObject(child, true );\r
-       if( (child.tagName == "DIV") && (child.parentElement.tagName == "TD") )\r
+       if( (child.tagName == "DIV") && (getParentNode(child).tagName == "TD") )\r
                child.width = "100%";// if the div is inside a cell of table, we need the this hack\r
        \r
        if( CCSSP.IsTextTag(child) )\r
@@ -4027,7 +4234,6 @@ CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCO
 CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");\r
 //End to collaborate with other event handler settings\r
 \r
-\r
 /// Section End  - CCSSP DHTM 2 (JavaScript 1.2)\r
 \r
-//// Segment End -- (JavaScript 1.2)\r
+//// Segment End -- (JavaScript 1.2)
\ No newline at end of file