home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 June / Chip_2004-06_cd2.bin / officexp / download / info_soubory / toolbar.js < prev    next >
Text File  |  2004-04-27  |  39KB  |  1,185 lines

  1.  
  2. // alert("Toolbar_js Start");
  3.  
  4. var RTL = false;
  5. var scFlag = false;
  6. var scrollcount = 0;
  7. if (document.dir == 'rtl')
  8.      RTL = true;
  9. var Strict_Compat = false;
  10. var ToolBar_Supported = false;
  11. var Frame_Supported   = false;
  12. var DoInstrumentation = false;
  13. var doImage = doImage;
  14. var TType = TType;
  15.  
  16. if (navigator.userAgent.indexOf("MSIE")    != -1 && 
  17.     navigator.userAgent.indexOf("Windows") != -1 && 
  18.     navigator.appVersion.substring(0,1) > 3)
  19. {
  20.     ToolBar_Supported = true;
  21.     if(!RTL){
  22.         if (document.compatMode == "CSS1Compat")
  23.         {
  24.             //alert("strict!");
  25.             Strict_Compat = true;
  26.         }
  27.     }    
  28. }
  29.  
  30.  
  31. if (ToolBar_Supported)
  32. {
  33.     var newLineChar = String.fromCharCode(10);
  34.     var char34 = String.fromCharCode(34);
  35.     var LastMSMenu = "";
  36.     var LastICPMenu = "";
  37.     var CurICPMenu = "";
  38.     var IsMSMenu = false;
  39.     var IsMenuDropDown = true;
  40.     var HTMLStr;
  41.     var FooterStr;
  42.     var TBLStr;
  43.     var x = 0;
  44.     var y = 0;
  45.     var x2 = 0;
  46.     var y2 = 0;
  47.     var x3 = 0;
  48.     var MSMenuWidth;
  49.     var ToolbarMinWidth;
  50.     var ToolbarMenu;
  51.     var ToolbarBGColor;
  52.     var ToolbarLoaded = false;
  53.     var aDefMSColor  = new Array(3);
  54.     var aDefICPColor = new Array(3);
  55.     var aCurMSColor  = new Array(3);
  56.     var aCurICPColor = new Array(3);
  57.     var MSFont;
  58.     var ICPFont;
  59.     var MSFTFont;
  60.     var ICPFTFont;
  61.     var MaxMenu = 30;
  62.     var TotalMenu = 0;
  63.     var arrMenuInfo = new Array(30);
  64.     var bFstICPTBMenu = true;
  65.     var bFstICPFTMenu = true;
  66.     
  67.     // Output style sheet and toolbar ID
  68.     document.write("<SPAN ID='StartMenu' STYLE='display:none;'></SPAN>");
  69.  
  70.     // Build Footer template
  71.     if ( !RTL ){
  72.         FooterStr = "<TABLE ID='idFooter1' STYLE='background-color:white;' cellSpacing='0' cellPadding='0' border='0'>" +
  73.             "<TR VALIGN='BOTTOM'><TD ID='idPosition' WIDTH='185'> </TD><TD ID='idFooterDate1' STYLE='background-color:white;height:30' NOWRAP><!--ICP_FOOTERDATE1_TITLES--></TD></TR>" +
  74.             "<TR VALIGN='BOTTOM'><TD COLSPAN='2' ID='idFooterDate2' STYLE='background-color:white;height:13;width:100%' NOWRAP><!--ICP_FOOTERDATE2_TITLES--></TD></TR>" +
  75.             "</TABLE><TABLE ID='idFooter' STYLE='background-color:white;width:100%' cellSpacing='0' cellPadding='0' border='0'>" +
  76.             "<TR VALIGN='MIDDLE'><TD ID='idFooterRow1' STYLE='background-color:white;height:20;width:100%' NOWRAP><!--ICP_FOOTERMENU_TITLES--></TD></TR>" +
  77.             "<TR VALIGN='MIDDLE'><TD ID='idFooterRow2' STYLE='background-color:white;height:30;width:100%' NOWRAP><!--MS_FOOTERMENU_TITLES--></TD></TR>" +
  78.             "</TABLE>";
  79.     }else if(RTL){
  80.         // Shailr - Not sure if I need this code yet. 
  81.         // RTL Correction: Check if <html> or <body> have the dir="rtl" attribute
  82.         var isRTL = false;
  83.         var isIE5 = navigator.appVersion.indexOf("MSIE 4") == -1;
  84.  
  85.         if (isIE5)
  86.         {
  87.             if (document.body.dir == 'rtl' || document.dir == 'rtl')
  88.                 isRTL = true;
  89.         }
  90.         else // test RTL in IE4
  91.         {
  92.             var ht = document.body.outerHTML;
  93.             ht = ht.substring(1, ht.indexOf(">")).toLowerCase();
  94.             //if (ht.indexOf("dir=rtl") > -1) isRTL = true;
  95.             if ((ht.indexOf("iedir=rtl") > -1) || (ht.indexOf("dir=rtl") > -1)) isRTL = true;
  96.         }
  97.         // End of RTL Correction.
  98.         
  99.         // MNP1 addition - Build Footer template 
  100.         FooterStr = "<TABLE ID='idFooter1' STYLE='background-color:white;' cellSpacing='0' cellPadding='0' border='0'>" +
  101.         "<TR VALIGN='BOTTOM'><TD ID='idPosition' WIDTH='185'> </TD><TD ID='idFooterDate1' STYLE='background-color:white;height:30' NOWRAP><!--ICP_FOOTERDATE1_TITLES--></TD></TR>" +
  102.         "<TR VALIGN='BOTTOM'><TD COLSPAN='2' ID='idFooterDate2' STYLE='background-color:white;height:13;width:100%' NOWRAP><!--ICP_FOOTERDATE2_TITLES--></TD></TR>" +
  103.         "</TABLE><TABLE ID='idFooter' STYLE='background-color:white;width:100%' cellSpacing='0' cellPadding='0' border='0'>" +
  104.         "<TR VALIGN='MIDDLE'><TD ID='idFooterRow1' STYLE='background-color:white;height:20;width:100%' NOWRAP><!--ICP_FOOTERMENU_TITLES--></TD></TR>" +
  105.         "<TR VALIGN='MIDDLE'><TD ID='idFooterRow2' STYLE='background-color:white;height:30;width:100%' NOWRAP><!--MS_FOOTERMENU_TITLES--></TD></TR>" +
  106.         "</TABLE>";
  107.     //end of MNP1 addition
  108.         //isRTL = true;
  109.     }        
  110.  
  111.     // Build toolbar template
  112.     
  113.     HTMLStr =  "<DIV ID='idToolbar' STYLE='width:100%' >";
  114.     HTMLStr += "<DIV ID='idRow1'    STYLE='position:relative;height:20px;'>";
  115.     //HTMLStr += "<DIV ID='idICPBanner'   STYLE='position:absolute;top:0px;left:0px;height:60px;width:250px;overflow:hidden;vertical-align:top;'><!--BEG_ICP_BANNER--><!--END_ICP_BANNER--></DIV>";
  116.  
  117.     if (!RTL){
  118.         HTMLStr += "<DIV ID='idICPBanner'   STYLE='position:absolute;top:0px;left:0px;height:60px;width:250px;overflow:hidden;vertical-align:top;'><!--BEG_ICP_BANNER--><!--END_ICP_BANNER--></DIV>";
  119.         //HTMLStr += "<DIV ID='idRowSpace1'    STYLE='position:absolute;top:0px;left:250px;height:20px;width:10px;background-color:black;float:right;' NOWRAP><!--Space--></DIV>";
  120.         //This following line inserted by the GSSDEV
  121.         HTMLStr += "<DIV ID='idSpace1'        STYLE='position:absolute;top:0px;left:250px;height:20px;vertical-align:top;overflow:hidden;background-color:#0A6CCE;'><img src='/library/images/support/1ptrans.gif'></DIV>"
  122.         HTMLStr += "<DIV ID='idMSMenuCurve' STYLE='position:absolute;top:0px;left:250px;height:20px;width:18px;overflow:hidden;vertical-align:top;horizontal-align:right;'><IMG SRC='/library/toolbar/images/curve.gif' BORDER=0></DIV>";
  123.         HTMLStr += "<DIV ID='idMSMenuPane'  STYLE='font-size:11px;position:absolute;top:0px;left:250px;height:20px;width:10px;background-color:black;float:right;' ALIGN=RIGHT NOWRAP><!--MS_MENU_TITLES--></DIV>";
  124.         HTMLStr += "</DIV>";
  125.     }else if(RTL){
  126.         TBLStr  = "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR STYLE='height:20;vertical-align:middle'><!--ICP_MENU_TITLES--></TR></TABLE>";
  127.         HTMLStr += "<DIV ID='idICPBanner'   STYLE='position:absolute;top:0;left:0;height:60;width:250;overflow:hidden;vertical-align:top;'><!--BEG_ICP_BANNER--><!--END_ICP_BANNER--></DIV>";
  128.         HTMLStr += "<DIV ID='idSpace1'        STYLE='position:relative;top:0px;width:100%;left:0;height:20px;vertical-align:top;overflow:hidden;z-index:-1;background-color:#0A6CCE;'><img src='/library/images/support/1ptrans.gif'></DIV>"
  129.         HTMLStr += "<DIV ID='idMSMenuCurve' STYLE='position:absolute;top:0;left:250;height:20;width:18;overflow:hidden;vertical-align:top;'><IMG SRC='/library/toolbar/iw/images/curve.gif' BORDER=0></DIV>";
  130.         // RTL Correction: added: dir='ltr' (forcing LTR!), added:   (prevents last menu problem)
  131.         HTMLStr += "<DIV dir='ltr' lang='he' ID='idMSMenuPane'  STYLE='font-size:11px;position:absolute;top:0;left:250;height:20;width:10;color:white;background-color:black;float:left;' NOWRAP><!--MS_MENU_TITLES--> </DIV>";
  132.         HTMLStr += "</DIV>";
  133.     }
  134.     if(!RTL){
  135.         //HTMLStr += "<DIV ID='idRowSpace2' STYLE='position:relative;left:250px;height:40px;'>";
  136.         HTMLStr += "<DIV ID='idRow2' STYLE='position:relative;left:250px;height:40px;'>";
  137.         //This following line inserted by the GSSDEV
  138.         HTMLStr += "<DIV ID='idSpace2'        STYLE='position:absolute;top:0px;left:0px;height:40px;vertical-align:top;overflow:hidden;background-color:#0A6CCE;'><img src='/library/images/support/1ptrans.gif'></DIV>"
  139.         HTMLStr += "<DIV ID='idADSBanner'   STYLE='position:absolute;top:0px;left:0px;height:40px;width:200px;vertical-align:top;overflow:hidden;'><!--BEG_ADS_BANNER--><!--END_ADS_BANNER--></DIV>";
  140.         HTMLStr += "<DIV ID='idMSCBanner'   STYLE='position:absolute;top:0px;left:180px;height:40px;width:200px;vertical-align:top;overflow:hidden;' ALIGN=RIGHT><!--BEG_MSC_BANNER--><!--END_MSC_BANNER--></DIV>";
  141.         HTMLStr += "</DIV>";
  142.     }else if(RTL){
  143.         HTMLStr += "<DIV ID='idRow2' STYLE='position:relative;left:0;height:40px;'>" ; // RTL Correction: was left:250
  144.         HTMLStr += "<DIV ID='idSpace2'        STYLE='position:absolute;top:0px;left:0px;height:40px;vertical-align:top;overflow:hidden;background-color:#0A6CCE;'><img src='/library/images/support/1ptrans.gif'></DIV>"
  145.         HTMLStr += "<DIV ID='idADSBanner'   STYLE='position:absolute;top:0;left:0;height:40;width:200;vertical-align:top;overflow:hidden;'><!--BEG_ADS_BANNER--><!--END_ADS_BANNER--></DIV>";
  146.         HTMLStr += "<DIV ID='idMSCBanner'   STYLE='position:absolute;top:0;left:200;height:40;width:200;vertical-align:top;overflow:hidden;' ALIGN=LEFT><!--BEG_MSC_BANNER--><!--END_MSC_BANNER--></DIV>";
  147.         HTMLStr += "</DIV>";
  148.     }    
  149.     if(!RTL){
  150.         // for GSS purpose we disabled the idRow3. No ICP Menu bar from this file.
  151.         HTMLStr += "<DIV ID='idRow3' STYLE='position:relative;height:20px;width:100%;display:none'>";
  152.         // zIndex Correction
  153.         HTMLStr += "<DIV ID='idICPMenuPane' STYLE='position:absolute;top:0px;left:0px;height:20px;background-color:black;' NOWRAP><!--ICP_MENU_TITLES--></DIV>";
  154.         HTMLStr += "</DIV>";
  155.         HTMLStr += "</DIV>";
  156.     }else if (RTL){
  157.         HTMLStr += "<DIV ID='idRow3' STYLE='position:relative;height:20px;width:100%;display:none'>";
  158.         // RTL Correction: added: dir='rtl'
  159.         HTMLStr += "<DIV dir='rtl' ID='idICPMenuPane' STYLE='position:absolute;top:0;left:0;height:20px;color:white;background-color:black;' NOWRAP><!--ICP_MENU_TITLES--></DIV>";
  160.         HTMLStr += "</DIV>";
  161.         HTMLStr += "</DIV>";
  162.         HTMLStr += "<SCRIPT FOR=idToolbar EVENT=onresize>resizeToolbar();</SCRIPT>";
  163.         HTMLStr += "<SCRIPT FOR=idToolbar EVENT=onmouseover>hideMenu();</SCRIPT>";
  164.     }
  165.     HTMLStr +=     "<SCRIPT TYPE='text/javascript'>" + 
  166.         "   var ToolbarMenu = StartMenu;" + 
  167.         "</SCRIPT>" + 
  168.     "<DIV WIDTH=100%>";        
  169.     
  170.     // Define event handlers
  171.     if(!RTL){
  172.         window.onresize  = resizeToolbar;
  173.         window.onscroll  = scrollbaroptions;
  174.     }    
  175.  
  176.     // Intialize global variables
  177.     ToolbarBGColor    = "#0A6CCE";                        // toolbar background color
  178.     
  179.     if (Strict_Compat)
  180.     {
  181.         MSFont  = "10px Arial";
  182.         ICPFont = "bold 10px Verdana";
  183.     }
  184.     else
  185.     {
  186.         if( !RTL ){
  187.             MSFont  = "10px Verdana";
  188.             ICPFont = "bold 10px Verdana";
  189.         }else if(RTL){
  190.             MSFont  = "12px Arial";     // RTL Correction: (was Verdana)
  191.             ICPFont = "bold 12px Arial"; // RTL Correction: (was Verdana)
  192.             //MNP1 RTL revision
  193.             MSFTFont = "12px Arial";
  194.             ICPFTFont = "bold 12px Arial"
  195.             //end
  196.         }    
  197.     }
  198.     
  199.     aDefMSColor[0]    = aCurMSColor[0]  = "black";    // bgcolor;
  200.     aDefMSColor[1]    = aCurMSColor[1]  = "white";    // text font color
  201.     aDefMSColor[2]  = aCurMSColor[2]  = "red";        // mouseover font color
  202.     
  203.     aDefICPColor[0]    = aCurICPColor[0] = "#0a6cce";    // bgcolor;
  204.     aDefICPColor[1] = aCurICPColor[1] = "white";    // text font color
  205.     aDefICPColor[2] = aCurICPColor[2] = "red";        // mouseover font color
  206.  
  207. }
  208.  
  209. // alert("Toolbar_js Initialization Done");
  210.  
  211.  
  212. // The hard-coded numbers in functions - drawToolbar() & resizeToolbar()
  213. // correspond to the dimension of the four gif files:
  214. //        ICP_BANNER: 60h x 250w
  215. //        ADS_BANNER: 40h x 200w
  216. //        MSC_BANNER: 40h x 112w
  217. //        Curve:        20h x 18w
  218.  
  219. function drawFooter(sLastUpdated, position)
  220. {
  221.     if(!RTL){
  222.         var re = "<!--TEMPCOLOR-->";
  223.         var sUpdatedDate = "";
  224.  
  225.         if (ToolbarBGColor.toUpperCase() == "WHITE" || ToolbarBGColor.toUpperCase() == "#FFFFFF")
  226.         {
  227.             while (FooterStr.indexOf(re) != -1)
  228.                 FooterStr = FooterStr.replace(re, "000000");
  229.         }
  230.         else
  231.         {
  232.             while (FooterStr.indexOf(re) != -1)
  233.                 FooterStr = FooterStr.replace(re, aDefICPColor[1]);
  234.         }
  235.  
  236.         var re2 = "<!--TEMPCOLOR2-->";
  237.  
  238.         while (FooterStr.indexOf(re2) != -1)
  239.             FooterStr = FooterStr.replace(re2, aDefICPColor[2]);
  240.     }else if (RTL){
  241.             var re = /<!--TEMPCOLOR-->/g;
  242.             var sUpdatedDate = "";
  243.             if (ToolbarBGColor.toUpperCase() == "WHITE" || ToolbarBGColor.toUpperCase() == "#FFFFFF")
  244.                 FooterStr = FooterStr.replace(re, "000000");
  245.             else
  246.                 FooterStr = FooterStr.replace(re, aDefICPColor[1]);
  247.             var re2 = /<!--TEMPCOLOR2-->/g;
  248.             FooterStr = FooterStr.replace(re2, aDefICPColor[2]);
  249.     }
  250.     sUpdatedDate = "<SPAN STYLE='font:" + MSFont + "'>"
  251.  
  252.     if (typeof sLastUpdated != "undefined")
  253.         sUpdatedDate += sLastUpdated;
  254.  
  255.     sUpdatedDate += "</SPAN>"; 
  256.  
  257.     FooterStr = FooterStr.replace("<!--ICP_FOOTERDATE1_TITLES-->", sUpdatedDate);
  258.  
  259.     document.body.innerHTML += FooterStr;
  260.     idFooterRow1.style.backgroundColor  = aDefICPColor[0];
  261.     idFooterRow2.style.backgroundColor  = ToolbarBGColor;    
  262.     
  263.     if (typeof sLastUpdated == "undefined")
  264.         idFooter1.style.display = "none";
  265.  
  266.     if (typeof position != "undefined")
  267.         idPosition.width = position;    
  268. }
  269.  
  270. function drawToolbar()
  271. {
  272.     HTMLStr += "</DIV>";
  273.     document.write(HTMLStr);
  274.     ToolbarLoaded = true;
  275.  
  276.     MSMenuWidth     = Math.max(idMSMenuPane.offsetWidth, (200+112));
  277.     ToolbarMinWidth = (250+18) + MSMenuWidth;
  278.  
  279.     idToolbar.style.backgroundColor     = ToolbarBGColor;
  280.     
  281.     idMSMenuPane.style.backgroundColor  = aDefMSColor[0];
  282.     idICPMenuPane.style.backgroundColor = aDefICPColor[0];
  283.     if (RTL){
  284.         idMSMenuPane.style.color            = aDefMSColor[1];
  285.         idICPMenuPane.style.color            = aDefICPColor[1];
  286.     }
  287.     resizeToolbar();
  288.  
  289.     for (i = 0; i < TotalMenu; i++) 
  290.     {
  291.         thisMenu = document.all(arrMenuInfo[i].IDStr);
  292.         if (thisMenu != null)
  293.         {
  294.             if (arrMenuInfo[i].IDStr == LastMSMenu && arrMenuInfo[i].type == "R")
  295.             {
  296.                 //Last MSMenu has to be absolute width
  297.                 arrMenuInfo[i].type = "A";
  298.                 arrMenuInfo[i].unit = 200;
  299.             }
  300.             if (arrMenuInfo[i].type == "A")
  301.                 if(!RTL){
  302.                     thisMenu.style.width = arrMenuInfo[i].unit + 'px';
  303.                 }else{
  304.                     thisMenu.style.width = arrMenuInfo[i].unit;
  305.                 }    
  306.             else 
  307.                 thisMenu.style.width = Math.round(arrMenuInfo[i].width * arrMenuInfo[i].unit) + 'em';
  308.         }
  309.     }
  310. }
  311.  
  312. function resizeToolbar()
  313. {
  314.     scFlag = false;
  315.     scrollcount = 0;
  316.     if (ToolBar_Supported == false) return;
  317.     var Center = document.getElementById("CenterPanel")
  318.     var realWidth=0;
  319.     if (Center){
  320.         realWidth = Center.clientWidth; // this was document.body.Width;
  321.     }else {
  322.         realWidth = document.body.clientWidth;
  323.     }
  324.  
  325.     w = Math.max(ToolbarMinWidth, realWidth) - ToolbarMinWidth;
  326.     if ( !RTL )
  327.     {
  328.         if (document.all("idMSMenuCurve"))
  329.         {    
  330.             idMSMenuCurve.style.left  = (250+(w)) + 'px';
  331.             idMSMenuPane.style.left   = (250+w+18) + 'px';
  332.             var SpaceWidth = w;
  333.             idSpace1.style.width =    SpaceWidth + 18 + 'px'; // original: SpaceWidth. fengj add +18 (when window is resized too small, the curve.gif color is white, +18 could fix it)
  334.             idSpace2.style.width =    Math.max(realWidth, MSMenuWidth) - MSMenuWidth + 74 + 'px';
  335.             idSpace2.style.backgroundColor = ToolbarBGColor;
  336.             idSpace1.style.backgroundColor = ToolbarBGColor;
  337.                         
  338.             idMSMenuPane.style.width  = MSMenuWidth  + 'px';
  339.             idADSBanner.style.left    = (w+18)  + 'px';
  340.             idMSCBanner.style.left    = (w+18)  + 'px';
  341.             idMSCBanner.style.width   = (MSMenuWidth - 126)  + 'px';
  342.             idICPMenuPane.style.width = ToolbarMinWidth + w  + 'px';
  343.         }
  344.     }
  345.     else if( RTL )
  346.     {
  347.         idToolbar.style.left = document.body.clientWidth - realWidth;
  348.         idToolbar.style.width= realWidth;
  349.         idMSMenuCurve.style.left  = MSMenuWidth;    // RTL Correction: was (250+w);
  350.         idMSMenuPane.style.left   = 0;            // RTL Correction: was (250+w+18);
  351.         idMSMenuPane.style.width  = MSMenuWidth;
  352.         idADSBanner.style.left    = 112;        // RTL Correction: was (w+18);
  353.         idMSCBanner.style.left    = 0;            // RTL Correction: was (w+18+200);
  354.         idMSCBanner.style.width   = Math.max(MSMenuWidth, 200) - 200;
  355.         idICPMenuPane.style.width = ToolbarMinWidth + w;
  356.         idICPBanner.style.left    = MSMenuWidth + 18 + w; // RTL Correction: line added for ICPBanner positioning
  357.         idSpace2.style.backgroundColor = ToolbarBGColor;
  358.         idSpace1.style.backgroundColor = ToolbarBGColor;
  359.         // start -  added by gsa
  360.         // idSpace1.style.width = (w + 18) + 'px';
  361.         // idSpace2.style.width = (w + 18 + 200) + 'px';
  362.         // end-  added by gsa
  363.     }
  364. }
  365.  
  366. function setToolbarBGColor(color)
  367. {    
  368.     ToolbarBGColor = color;
  369.     if (ToolbarLoaded == true)
  370.         idToolbar.style.backgroundColor = ToolbarBGColor;
  371. }
  372.  
  373. function setBannerColor(bannerColor, bgColor, fontColor, mouseoverColor)
  374. {
  375.     if (bannerColor.toUpperCase() != "WHITE" && bannerColor.toUpperCase() != "FFFFFF")
  376.         bgColor = bannerColor;
  377.  
  378.     setToolbarBGColor(bannerColor);
  379.     setDefaultICPMenuColor(bgColor, fontColor, mouseoverColor);
  380. }
  381.  
  382. function setMSMenuFont(sFont)
  383. {    
  384.     MSFont = sFont;
  385. }
  386.  
  387. function setICPMenuFont(sFont)
  388. {    
  389.     ICPFont = sFont;
  390. }
  391.  
  392. function setDefaultMSMenuColor(bgColor, fontColor, mouseoverColor)
  393. {    
  394.     if (bgColor   != "")      aDefMSColor[0] = bgColor;
  395.     if (fontColor != "")      aDefMSColor[1] = fontColor;
  396.     if (mouseoverColor != "") aDefMSColor[2] = mouseoverColor;
  397. }
  398.  
  399. function setDefaultICPMenuColor(bgColor, fontColor, mouseoverColor)
  400. {    
  401.     if (bgColor   != "")      aDefICPColor[0] = bgColor;
  402.     if (fontColor != "")      aDefICPColor[1] = fontColor;
  403.     if (mouseoverColor != "") aDefICPColor[2] = mouseoverColor;
  404. }
  405.  
  406. function setICPMenuColor(MenuIDStr, bgColor, fontColor, mouseoverColor)
  407. {    
  408.     if (ToolbarLoaded == false) return;
  409.  
  410.     // Reset previous ICP Menu color if any
  411.     if (CurICPMenu != "")
  412.     {
  413.         PrevID = CurICPMenu.substring(4);
  414.         CurICPMenu = "";
  415.         setICPMenuColor(PrevID, aDefICPColor[0], aDefICPColor[1], aDefICPColor[2]);
  416.     }
  417.  
  418.     var    id = "AM_" + "ICP_" + MenuIDStr;
  419.     var thisMenu = document.all(id);
  420.     if (thisMenu != null)
  421.     {
  422.         CurICPMenu = "ICP_" + MenuIDStr;
  423.         aCurICPColor[0] = bgColor;
  424.         aCurICPColor[1] = fontColor;
  425.         aCurICPColor[2] = mouseoverColor;
  426.  
  427.         // Change menu color
  428.         if (bgColor != "")
  429.             thisMenu.style.backgroundColor = bgColor;
  430.         if (fontColor != "")
  431.             thisMenu.style.color = fontColor;
  432.  
  433.         // Change subMenu color
  434.         id = "ICP_" + MenuIDStr;
  435.         thisMenu = document.all(id);
  436.         if (thisMenu != null)
  437.         {
  438.             if (bgColor != "")
  439.                 thisMenu.style.backgroundColor = bgColor;
  440.             
  441.             if (fontColor != "")
  442.             {
  443.                 i = 0;
  444.                 id = "AS_" + "ICP_" + MenuIDStr;
  445.                 thisMenu = document.all.item(id,i);
  446.                 while (thisMenu != null)
  447.                 {
  448.                     thisMenu.style.color = fontColor;
  449.                     i += 1;
  450.                     thisMenu = document.all.item(id,i);
  451.                 }
  452.             }
  453.         }
  454.     }
  455. }
  456.  
  457. function setAds(Gif,Url,AltStr)
  458. {    setBanner(Gif,Url,AltStr,"<!--BEG_ADS_BANNER-->","<!--END_ADS_BANNER-->");
  459. }
  460.  
  461. function setICPBanner(Gif,Url,AltStr)
  462. {    
  463.  
  464.     if(RTL){
  465.         if (Gif.indexOf("training_banner_training.gif") > 0){
  466.             Gif = "training_banner_training.gif";
  467.         }
  468.     }    
  469.     setBanner(Gif,Url,AltStr,"<!--BEG_ICP_BANNER-->","<!--END_ICP_BANNER-->");
  470. }
  471.  
  472. function setMSBanner(Gif,Url,AltStr)
  473. {    tempGif = "/library/images/support/" + Gif;
  474.     setBanner(tempGif,Url,AltStr,"<!--BEG_MSC_BANNER-->","<!--END_MSC_BANNER-->");
  475. }
  476.  
  477. function setBanner(BanGif, BanUrl, BanAltStr, BanBegTag, BanEndTag)
  478. {
  479.     begPos = HTMLStr.indexOf(BanBegTag);
  480.     endPos = HTMLStr.indexOf(BanEndTag) + BanEndTag.length;
  481.     SubStr = HTMLStr.substring(begPos, endPos);
  482.     SrcStr = "";
  483.     if (BanGif !="")
  484.     {
  485.         if (BanUrl != "")
  486.             SrcStr += "<A Target='_top' HREF='" + BanUrl + "'>";
  487.         SrcStr += "<IMG SRC='" + BanGif + "' ALT='" + BanAltStr + "' BORDER=0>";
  488.         if (BanUrl != "")
  489.             SrcStr += "</A>";
  490.         SrcStr = BanBegTag + SrcStr + BanEndTag;
  491.         HTMLStr = HTMLStr.replace(SubStr, SrcStr);
  492.     }    
  493. }
  494.  
  495. function setICPSubMenuWidth(MenuIDStr, WidthType, WidthUnit)
  496. {    tempID = "ICP_" + MenuIDStr;
  497.     setSubMenuWidth(tempID, WidthType, WidthUnit);
  498. }
  499.  
  500. function setMSSubMenuWidth(MenuIDStr, WidthType, WidthUnit)
  501. {    tempID = "MS_" + MenuIDStr;
  502.     setSubMenuWidth(tempID, WidthType, WidthUnit);
  503. }
  504.  
  505. function setSubMenuWidth(MenuIDStr, WidthType, WidthUnit)
  506. {
  507.     var fFound = false;
  508.     if (TotalMenu == MaxMenu)
  509.     {
  510.         alert("Unable to process menu. Maximum of " + MaxMenu + " reached.");
  511.         return;
  512.     }
  513.     
  514.     for (i = 0; i < TotalMenu; i++)
  515.         if (arrMenuInfo[i].IDStr == MenuIDStr)
  516.         {
  517.             fFound = true;
  518.             break;
  519.         }
  520.  
  521.     if (!fFound)
  522.     {
  523.         arrMenuInfo[i] = new menuInfo(MenuIDStr);
  524.         TotalMenu += 1;
  525.     }
  526.  
  527.     if (!fFound && WidthType.toUpperCase().indexOf("DEFAULT") != -1)
  528.     {
  529.         arrMenuInfo[i].type = "A";
  530.         arrMenuInfo[i].unit = 160;
  531.     }
  532.     else
  533.     {
  534.         arrMenuInfo[i].type = (WidthType.toUpperCase().indexOf("ABSOLUTE") != -1)? "A" : "R";
  535.         arrMenuInfo[i].unit = WidthUnit;
  536.     }
  537. }
  538.  
  539. // This function creates a menuInfo object instance.
  540. function menuInfo(MenuIDStr)
  541. {
  542.     this.IDStr = MenuIDStr;
  543.     this.type  = "";
  544.     this.unit  = 0;
  545.     this.width = 0;
  546.     this.count = 0;
  547. }
  548.  
  549. function updateSubMenuWidth(MenuIDStr)
  550. {
  551.     for (i = 0; i < TotalMenu; i++)
  552.         if (arrMenuInfo[i].IDStr == MenuIDStr)
  553.         {
  554.             if (arrMenuInfo[i].width < MenuIDStr.length) 
  555.                 arrMenuInfo[i].width = MenuIDStr.length;
  556.             arrMenuInfo[i].count = arrMenuInfo[i].count + 1;
  557.             break;
  558.         }
  559. }
  560.  
  561. function addICPMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr)
  562. {     
  563.     if(RTL){
  564.         if (LastICPMenu == "") HTMLStr = HTMLStr.replace("<!--ICP_MENU_TITLES-->", TBLStr);
  565.     }    
  566.  
  567.     if (addICPMenu.arguments.length > 4)
  568.         TargetStr = addICPMenu.arguments[4];
  569.     else
  570.         TargetStr = "_top";
  571.     tempID = "ICP_" + MenuIDStr;
  572.     addMenu(tempID, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr, true); 
  573.     if (RTL){
  574.         LastICPMenu = tempID;
  575.     }else{
  576.         bFstICPTBMenu=false;        
  577.     }
  578. }
  579.  
  580. function addMSMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr)
  581. {
  582.     TargetStr = "_top";
  583.     tempID = "MS_" + MenuIDStr;
  584.     //alert(" TempID: " + tempID +  " MenuDisplayString: " + MenuDisplayStr + " Menu Help String :" + MenuHelpStr + " MenuUrl:" + MenuURLStr + " Target:" + TargetStr);
  585.     addMenu(tempID, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr, false); 
  586.     LastMSMenu = tempID;
  587. }
  588.  
  589. function addMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr, bICPMenu)
  590. {
  591.     cFont   = bICPMenu? ICPFont : MSFont;
  592.     cColor0 = bICPMenu? aDefICPColor[0] : aDefMSColor[0];
  593.     cColor1 = bICPMenu? aDefICPColor[1] : aDefMSColor[1];
  594.     cColor2 = bICPMenu? aDefICPColor[2] : aDefMSColor[2];
  595.     if (RTL){
  596.         cStyle  = "font:" + cFont + ";background-color:" + cColor0 + ";color:" + cColor1 + ";";
  597.         if (MenuHelpStr == "") MenuHelpStr = MenuDisplayStr; // Shailr. This line should have been before the line MenuStr = newLineChar; but I am tryig to avoid another if..else
  598.     }
  599.     tagStr  = bICPMenu? "<!--ICP_MENU_TITLES-->" : "<!--MS_MENU_TITLES-->";
  600.     
  601.     MenuStr = newLineChar;
  602.     if (!RTL){
  603.         if ((bICPMenu == false && LastMSMenu != "") || (bICPMenu == true && bFstICPTBMenu==false))
  604.             MenuStr += "<SPAN STYLE='font:" + cFont + ";color:" + cColor1 + "'>| </SPAN>"; 
  605.         MenuStr += "<A TARGET='" + TargetStr + "' TITLE='" + MenuHelpStr + "'" +
  606.                 "   ID='AM_" + MenuIDStr + "'" +
  607.                 "   STYLE='text-decoration:none;cursor:hand;font:" + cFont + ";background-color:" + cColor0 + ";color:" + cColor1 + ";'";
  608.         if (MenuURLStr != "")
  609.         {
  610.             if (bICPMenu)
  611.                 MenuStr += " HREF='" + formatURL(MenuURLStr, ("ICP_" + MenuDisplayStr)) + "'";
  612.             else
  613.                 MenuStr += " HREF='" + formatURL(MenuURLStr, ("MS_" + MenuDisplayStr)) + "'";
  614.         }
  615.         else
  616.             MenuStr += " HREF='' onclick='window.event.returnValue=false;'";
  617.         MenuStr +=     " onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "'); hideMenu();" + char34 + 
  618.                     " onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "'); doMenu('"+ MenuIDStr + "');" + char34 + ">" +
  619.                     " " + MenuDisplayStr + " </a>";
  620.         MenuStr += tagStr;
  621.     }
  622.     if ( RTL ){
  623.             if (bICPMenu) 
  624.             MenuStr += "<TD STYLE='" + cStyle + "' ID='AM_" + MenuIDStr + "' NOWRAP>";
  625.             else{
  626.                 // RTL Correction: added: dir='rtl' (for MSMenu)
  627.                 MenuStr += "<SPAN dir='rtl' STYLE='" + cStyle + "'>";
  628.                 if (LastMSMenu != "") MenuStr += "|"; 
  629.                 MenuStr += " ";
  630.             }
  631.         MenuStr += "<A STYLE='text-decoration:none;cursor:hand;font:" + cFont + ";color:" + cColor1 + ";'" +
  632.                "   TARGET='" + TargetStr + "'" +
  633.                "   TITLE=" + char34 + MenuHelpStr + char34;
  634.         if (MenuURLStr != "")
  635.             MenuStr += " HREF='" + formatURL(MenuURLStr, ((bICPMenu? "ICP_":"MS_") + MenuDisplayStr)) + "'";
  636.         else
  637.             MenuStr += " HREF='' onclick='window.event.returnValue=false;'";
  638.         MenuStr += " onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "'); hideMenu();" + char34 + 
  639.                 " onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "'); doMenu('"+ MenuIDStr + "');" + char34 + ">" +
  640.                 " " + MenuDisplayStr + " </a>";
  641.         if (bICPMenu) 
  642.             MenuStr += " </TD><TD STYLE='" + cStyle + "'>|</TD>";
  643.         else
  644.             MenuStr += "</SPAN>";
  645.             MenuStr += tagStr;
  646.     }
  647.     HTMLStr = HTMLStr.replace(tagStr, MenuStr);    
  648.     setSubMenuWidth(MenuIDStr,"default",0);
  649. }
  650.  
  651. function addICPSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr)
  652. {    
  653.     if (addICPSubMenu.arguments.length > 3)
  654.         TargetStr = addICPSubMenu.arguments[3];
  655.     else
  656.         TargetStr = "_top";
  657.     tempID = "ICP_" + MenuIDStr;
  658.     addSubMenu(tempID,SubMenuStr,SubMenuURLStr,TargetStr,true); 
  659. }
  660.  
  661. function addMSSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr)
  662. {    
  663.     TargetStr = "_top";
  664.     tempID = "MS_" + MenuIDStr;
  665.     //alert("TempID: " + tempID + "\nSubMenuStr: " + SubMenuStr + "\n SubMenuURLStr: " + SubMenuURLStr + "\n TargetStr: " + TargetStr);
  666.     addSubMenu(tempID,SubMenuStr,SubMenuURLStr,TargetStr,false); 
  667. }
  668.  
  669. function addSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr, TargetStr, bICPMenu)
  670. {
  671.     cFont   = bICPMenu? ICPFont : MSFont;
  672.     cColor0 = bICPMenu? aDefICPColor[0] : aDefMSColor[0];
  673.     cColor1 = bICPMenu? aDefICPColor[1] : aDefMSColor[1];
  674.     cColor2 = bICPMenu? aDefICPColor[2] : aDefMSColor[2];
  675.     
  676.     var MenuPos = MenuIDStr.toUpperCase().indexOf("MENU");
  677.     if (MenuPos == -1) { MenuPos = MenuIDStr.length; }
  678.     InstrumentStr = MenuIDStr.substring(0 , MenuPos) + "|" + SubMenuStr;
  679.     URLStr        = formatURL(SubMenuURLStr, InstrumentStr);
  680.  
  681.     var LookUpTag  = "<!--" + MenuIDStr + "-->";
  682.     var sPos = HTMLStr.indexOf(LookUpTag);
  683.     if (sPos <= 0)
  684.     {
  685.         HTMLStr += newLineChar + newLineChar +
  686.         "<SPAN ID='" + MenuIDStr + "'";
  687.         if (!RTL){
  688.             HTMLStr +=     " STYLE='display:none;position:absolute;width:160px;background-color:" + cColor0 + ";padding-top:0px;padding-left:0px;padding-bottom:20px;z-index:9px;'";
  689.         }else if (RTL){
  690.             HTMLStr +=     " STYLE='display:none;position:absolute;width:160;background-color:" + cColor0 + ";padding-top:0;padding-left:0;padding-bottom:20;z-index:9;'";
  691.         }
  692.         HTMLStr += "onmouseout='hideMenu();'>";        
  693.         if (Frame_Supported == false || bICPMenu == false)
  694.         if (!RTL){
  695.             HTMLStr += "<HR  STYLE='position:absolute;left:0px;top:0px;color:" + cColor1 + "' SIZE=1>";
  696.             HTMLStr += "<DIV STYLE='position:relative;left:0px;top:8px;'>";
  697.         } else if (RTL){
  698.             HTMLStr += "<HR  STYLE='position:absolute;left:0;top:0;color:" + cColor1 + "' SIZE=1>";
  699.             HTMLStr += "<DIV STYLE='right:0;top:8;' dir='rtl'>";
  700.         }    
  701.     }
  702.  
  703.     TempStr = newLineChar +
  704.                 "<A ID='AS_" + MenuIDStr + "'" +
  705.                 "   STYLE='text-decoration:none;cursor:hand;font:" + cFont + ";color:" + cColor1 + "'" +
  706.                 "   HREF='" + URLStr + "' TARGET='" + TargetStr + "'" +
  707.                 " onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "');" + char34 + 
  708.                 " onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "');" + char34 + ">" +
  709.                 " " + SubMenuStr + "</A><BR>" + LookUpTag;
  710.     if (sPos <= 0)
  711.         HTMLStr += TempStr + "</DIV></SPAN>";
  712.     else
  713.         HTMLStr = HTMLStr.replace(LookUpTag, TempStr);    
  714.  
  715.     updateSubMenuWidth(MenuIDStr);    
  716. }
  717.  
  718. function addICPSubMenuLine(MenuIDStr)
  719. {    
  720.     tempID = "ICP_" + MenuIDStr;
  721.     addSubMenuLine(tempID,true);
  722. }
  723.  
  724. function addMSSubMenuLine(MenuIDStr)
  725. {    
  726.     tempID = "MS_" + MenuIDStr;
  727.     addSubMenuLine(tempID,false);
  728. }
  729.  
  730. function addSubMenuLine(MenuIDStr, bICPMenu)
  731. {
  732.     var LookUpTag = "<!--" + MenuIDStr + "-->";
  733.     var sPos = HTMLStr.indexOf(LookUpTag);
  734.     if (sPos > 0)
  735.     {
  736.         cColor  = bICPMenu? aDefICPColor[1] : aDefMSColor[1];
  737.         TempStr = newLineChar + "<HR STYLE='color:" + cColor + "' SIZE=1>" + LookUpTag;
  738.         HTMLStr = HTMLStr.replace(LookUpTag, TempStr);
  739.     }
  740. }
  741.  
  742. function addMSFooterMenu(MenuDisplayStr, MenuURLStr)
  743. {
  744.     addFooterMenu(MenuDisplayStr, MenuURLStr, false)
  745. }
  746.  
  747. function addICPFooterMenu(MenuDisplayStr, MenuURLStr)
  748. {
  749.     addFooterMenu(MenuDisplayStr, MenuURLStr, true)
  750.     bFstICPFTMenu = false;
  751. }
  752.  
  753. function addFooterMenu(MenuDisplayStr, MenuURLStr, bICPMenu)
  754. {
  755.     cFont   = bICPMenu? ICPFont : MSFont;
  756.     cColor1 = aDefICPColor[1];
  757.     cColor2 = aDefICPColor[2];
  758.  
  759.     tagStr  = bICPMenu? "<!--ICP_FOOTERMENU_TITLES-->" : "<!--MS_FOOTERMENU_TITLES-->";
  760.  
  761.     MenuStr = "";
  762.  
  763.     if ((bICPMenu) && bFstICPFTMenu == false)
  764.         MenuStr += "<SPAN STYLE='font:" + cFont + ";color:" + cColor1 + "'> |</SPAN>";
  765.  
  766.     if ((bICPMenu == false) && (MenuURLStr == ''))
  767.         MenuStr += "<SPAN STYLE='font:" + cFont + ";color:<!--TEMPCOLOR-->'> " + MenuDisplayStr + " </SPAN>";
  768.     else
  769.     {
  770.         MenuStr += " <A TARGET='_top' STYLE='";
  771.         if (bICPMenu)
  772.             MenuStr += "text-decoration:none;";
  773.         MenuStr += "cursor:hand;font:" + cFont + ";" 
  774.         
  775.         if (bICPMenu)
  776.             MenuStr += "color:" + cColor1 + ";'";
  777.         else
  778.             MenuStr += "color:<!--TEMPCOLOR-->" + ";'";
  779.  
  780.         MenuStr += " HREF='" + MenuURLStr + "'";
  781.     
  782.         MenuStr +=     " onmouseout=" + char34 + "this.style.color = '";
  783.  
  784.         if (bICPMenu) 
  785.             MenuStr += cColor1;
  786.         else
  787.             MenuStr += "<!--TEMPCOLOR-->";
  788.         MenuStr += "'" + char34 + " onmouseover=" + char34 + "this.style.color = '"
  789.         
  790.         if (bICPMenu)
  791.             MenuStr += cColor2
  792.         else
  793.             MenuStr += "<!--TEMPCOLOR2-->";
  794.  
  795.         MenuStr += "'" + char34 + ">" + MenuDisplayStr + "</A> ";    
  796.     }
  797.  
  798.     MenuStr += tagStr;
  799.     
  800.     FooterStr = FooterStr.replace(tagStr, MenuStr);    
  801. }
  802.  
  803. function mouseMenu(id, MenuIDStr) 
  804. {
  805.     IsMSMenu   = (MenuIDStr.toUpperCase().indexOf("MS_") != -1);
  806.     IsMouseout = (id.toUpperCase().indexOf("OUT") != -1);
  807.  
  808.     if (IsMouseout)
  809.     {
  810.         color = IsMSMenu? aDefMSColor[1] : aDefICPColor[1];
  811.         if (MenuIDStr == CurICPMenu && aCurICPColor[1] != "") 
  812.             color = aCurICPColor[1];
  813.     }
  814.     else
  815.     {
  816.         color = IsMSMenu? aDefMSColor[2] : aDefICPColor[2];
  817.         if (MenuIDStr == CurICPMenu && aCurICPColor[2] != "") 
  818.             color = aCurICPColor[2];
  819.     }
  820.     window.event.srcElement.style.color = color;
  821. }
  822.  
  823. function doMenu(MenuIDStr) 
  824. {
  825.     var thisMenu = document.all(MenuIDStr);
  826.     if (ToolbarMenu == null || thisMenu == null || thisMenu == ToolbarMenu) 
  827.     {
  828.         window.event.cancelBubble = true;
  829.         return false;
  830.     }
  831.     // Reset dropdown menu
  832.     window.event.cancelBubble = true;
  833.     ToolbarMenu.style.display = "none";
  834.     showElement("SELECT");
  835.     showElement("OBJECT");
  836.     ToolbarMenu = thisMenu;
  837.     IsMSMenu = (MenuIDStr.toUpperCase().indexOf("MS_") != -1);
  838.  
  839.     // Set dropdown menu display position
  840.     x  = window.event.srcElement.offsetLeft +
  841.           window.event.srcElement.offsetParent.offsetLeft;
  842.     if (RTL){
  843.         // RTL correction:
  844.         var ICPstart = 0;
  845.         if (!IsMSMenu)
  846.         {
  847.             if (isIE5)
  848.                 ICPstart = window.event.srcElement.offsetParent.offsetParent.offsetLeft;
  849.             else // for IE4 we must use...
  850.                 ICPstart = window.event.srcElement.offsetParent.offsetParent.offsetParent.offsetParent.offsetWidth -
  851.                     window.event.srcElement.offsetParent.offsetParent.offsetWidth;
  852.             x += ICPstart;
  853.         }
  854.         x -= thisMenu.style.posWidth;
  855.         x += IsMSMenu ? 8 : -2;
  856.         if (x < 0) x = 0;
  857.         // End of RTL Correction
  858.     
  859.     }      
  860.     if (MenuIDStr == LastMSMenu){ 
  861.         if (!RTL){
  862.             x += (window.event.srcElement.offsetWidth - thisMenu.style.posWidth);
  863.         }else if (RTL){
  864.             if (x < 0) x = 0;
  865.         }    
  866.     }
  867.     x2 = x + window.event.srcElement.offsetWidth;
  868.     y  = (IsMSMenu)? 
  869.          (idRow1.offsetHeight) :
  870.          (idRow1.offsetHeight + idRow2.offsetHeight + idRow3.offsetHeight);
  871.     if (RTL){
  872.             // Get main menu width
  873.             // RTL Correction:
  874.         if (IsMSMenu)
  875.             x2 = window.event.srcElement.offsetLeft - window.event.srcElement.offsetWidth;
  876.         else
  877.             x2 = window.event.srcElement.offsetParent.offsetLeft + ICPstart;
  878.         // End of RTL Correction.
  879.         // Get dropdown menu width
  880.         x3 = x + 160;
  881.         for (i = 0; i < TotalMenu; i++){
  882.             if (arrMenuInfo[i].IDStr == MenuIDStr)
  883.             {
  884.                 x3 = x+ arrMenuInfo[i].unit;
  885.                 break;
  886.             }
  887.         }
  888.     
  889.     }     
  890.          
  891.     thisMenu.style.top  = y;
  892.     thisMenu.style.left = x;
  893.     thisMenu.style.clip = "rect(0 0 0 0)";
  894.     thisMenu.style.display = "block";
  895.     thisMenu.style.zIndex = 102;
  896.  
  897.     // delay 2 millsecond to allow the value of ToolbarMenu.offsetHeight be set
  898.     window.setTimeout("showMenu()", 2);
  899.     return true;
  900. }
  901.  
  902. function showMenu() 
  903. {
  904.     if (ToolbarMenu != null) 
  905.     { 
  906.         IsMenuDropDown = (Frame_Supported && IsMSMenu == false)? false : true;
  907.         if (IsMenuDropDown == false)
  908.         {
  909.             y = (y - ToolbarMenu.offsetHeight - idRow3.offsetHeight);
  910.             if (y < 0) y = 0;
  911.             ToolbarMenu.style.top = y;
  912.         }
  913.         y2 = y + ToolbarMenu.offsetHeight;
  914.  
  915.         ToolbarMenu.style.clip = "rect(auto auto auto auto)";
  916.         hideElement("SELECT");
  917.         hideElement("OBJECT");
  918.         if (!RTL)
  919.             x2 = x + ToolbarMenu.offsetWidth;
  920.             hideElement("IFRAME");  //FRANKLO
  921.     }
  922. }
  923.  
  924.  
  925. function hideMenu()
  926. {
  927.     if (ToolbarMenu != null && ToolbarMenu != StartMenu) 
  928.     {
  929.         // Don't hide the menu if the mouse move between the menu and submenus
  930.  
  931.         if (!RTL){
  932.             cY = event.clientY + document.body.scrollTop;
  933.             cX = event.clientX; 
  934.             //window.status = " flag: " + scFlag + " Count: " + scrollcount + " cx: " + cX + " x: " + x + " x2: " + x2 + " offset: " + document.body.scrollWidth;
  935.             //window.status = "CY: " + cY + " Y: " + y + " Y2: " + y2 + " offTop: " + document.body.scrollTop    ;
  936.             //window.status = ToolbarMenu.style.zIndex;
  937.             if (document.body.offsetWidth > x && scFlag) {
  938.                 cX = x + 9;
  939.             }
  940.             if ( (cX >= (x+5) && cX<=x2) &&
  941.              ((IsMenuDropDown == true  && cY > (y-10) && cY <= y2)      ||
  942.               (IsMenuDropDown == false && cY >= y     && cY <= (y2+10)) ))
  943.             {
  944.                 window.event.cancelBubble = true;
  945.                 return; 
  946.             }
  947.         }else if(RTL){
  948.             var cX = event.clientX //+ document.body.scrollLeft;
  949.             // RTL correction: considers left scrollbar width!
  950.             if (isRTL) cX -= 16;
  951.             var cY = event.clientY + document.body.scrollTop;
  952.             var bHideMenu = true;
  953.             //window.status = "CX: " + cX + " X: " + x + "x3: " + x3 + "TBLOFFSET: " + document.body.scrollLeft + "x2: " + x2 + "Cy: " + cY + " Y: " + y + "idrow: " +idRow3.offsetHeight ;
  954.             if (cX > document.body.scrollLeft && document.body.scrollLeft > 1){
  955.                 cX = x3;    //x + 9;
  956.             }
  957.             if (IsMenuDropDown == true)
  958.             {// RTL Correction: cY-8 instead of cY
  959.                 if ( cY-8 >= (y - idRow2.offsetHeight) && cY < y) // Another RTL Correction: idRow2 instead of idRow3 since hidden
  960.                 {// RTL Correction: [x,x2] --> [x2,x3]
  961.                     if (cX >= (x2+5) && cX <= x3) bHideMenu = false;
  962.                 }
  963.                 else if (cY >= y && cY <= y2)
  964.                 {
  965.                     if (cX > (x+5) && cX <= x3) bHideMenu = false;
  966.                 }
  967.             }
  968.             else
  969.             {
  970.                 if (cY >= y2 && cY < (y2 + idRow3.offsetHeight))
  971.                 {// RTL Correction: [x,x2] --> [x2,x3]
  972.                     if (cX >= (x2+5) && cX <= x3) bHideMenu = false;
  973.                 }
  974.                 else if (cY >= y && cY <= y2)
  975.                 {
  976.                     if (cX > (x+5) && cX <= x3) bHideMenu = false;
  977.                 }
  978.             }
  979.  
  980.             if (! bHideMenu) 
  981.             {
  982.                 window.event.cancelBubble = true;
  983.                 return; 
  984.             }
  985.         }    
  986.  
  987.         ToolbarMenu.style.display = "none";
  988.         ToolbarMenu = StartMenu;
  989.         window.event.cancelBubble = true;
  990.  
  991.         showElement("SELECT");
  992.         showElement("OBJECT");
  993.         if(!RTL){
  994.             showElement("IFRAME"); //FRANKLO
  995.         }    
  996.     }
  997. }
  998.  
  999. function hideElement(elmID)
  1000. {
  1001.     for (i = 0; i < document.all.tags(elmID).length; i++)
  1002.     {
  1003.         obj = document.all.tags(elmID)[i];
  1004.         if (! obj || ! obj.offsetParent)
  1005.             continue;
  1006.  
  1007.         // Find the element's offsetTop and offsetLeft relative to the BODY tag.
  1008.         objLeft   = obj.offsetLeft;
  1009.         objTop    = obj.offsetTop;
  1010.         objParent = obj.offsetParent;
  1011.         while (objParent.tagName.toUpperCase() != "BODY")
  1012.         {
  1013.             objLeft  += objParent.offsetLeft;
  1014.             objTop   += objParent.offsetTop;
  1015.             objParent = objParent.offsetParent;
  1016.         }
  1017.         // Adjust the element's offsetTop relative to the dropdown menu
  1018.         objTop = objTop - y;
  1019.  
  1020.         if (x > (objLeft + obj.offsetWidth) || objLeft > (x + ToolbarMenu.offsetWidth))
  1021.             ;
  1022.         else if (objTop > ToolbarMenu.offsetHeight)
  1023.             ;
  1024.         else if (IsMSMenu && (y + ToolbarMenu.offsetHeight) <= 80)
  1025.             ;
  1026.         else
  1027.             obj.style.visibility = "hidden";
  1028.     }
  1029. }
  1030.  
  1031. function showElement(elmID)
  1032. {
  1033.     for (i = 0; i < document.all.tags(elmID).length; i++)
  1034.     {
  1035.         obj = document.all.tags(elmID)[i];
  1036.         if (! obj || ! obj.offsetParent)
  1037.             continue;
  1038.         obj.style.visibility = "";
  1039.     }
  1040. }
  1041.  
  1042. function formatURL(URLStr, InstrumentStr)
  1043. {
  1044.     var tempStr = URLStr;
  1045.  
  1046.     if (DoInstrumentation && URLStr != "" )
  1047.     {
  1048.         var ParamPos1 = URLStr.indexOf("?");
  1049.         var ParamPos2 = URLStr.lastIndexOf("?");
  1050.         var ParamPos3 = URLStr.toLowerCase().indexOf("target=");
  1051.         var ParamPos4 = URLStr.indexOf("#");
  1052.         var Bookmark  = "";
  1053.         var URL = URLStr;
  1054.         if (ParamPos4 >= 0)
  1055.         {
  1056.              URL = URLStr.substr(0, ParamPos4);
  1057.             Bookmark = URLStr.substr(ParamPos4);
  1058.         }
  1059.         
  1060.         if (ParamPos1 == -1)
  1061.             tempStr = "?MSCOMTB=";
  1062.         else if (ParamPos1 == ParamPos2 && ParamPos3 == -1)    
  1063.             tempStr = "&MSCOMTB=";
  1064.         else if (ParamPos1 == ParamPos2 && ParamPos3 != -1)    
  1065.             tempStr = "?MSCOMTB=";
  1066.         else if (ParamPos1 < ParamPos2)
  1067.             tempStr = "&MSCOMTB=";
  1068.  
  1069.         tempStr = URL + tempStr + InstrumentStr.replace(" ","%20") + Bookmark;
  1070.     }
  1071.     return tempStr;
  1072. }
  1073.  
  1074. function prepTrackingString(ts, type)
  1075. {
  1076.     var rArray;
  1077.     var rString;
  1078.     var pName = '';
  1079.     if (0 == type)
  1080.     {
  1081.         pName = 'p=';
  1082.         rString = ts.substring(1);
  1083.         rArray = rString.split('/');
  1084.     }
  1085.     if (1 == type)
  1086.     {
  1087.         pName = 'qs=';
  1088.         rString = ts.substring(1);
  1089.         rArray = rString.split('&');        
  1090.     }
  1091.     if (2 == type)
  1092.     {
  1093.         pName = 'f=';
  1094.         rString = escape(ts);
  1095.         return pName + rString;
  1096.     }
  1097.     if (3 == type)
  1098.     {
  1099.         pName = 'tPage=';
  1100.         rString = escape(ts);
  1101.         return pName+rString;
  1102.     }
  1103.     if (4 == type)
  1104.     {
  1105.         pName = 'sPage=';
  1106.         rString = escape(ts);
  1107.         return pName + rString;
  1108.     }
  1109.     if (5 == type)
  1110.     {
  1111.         pName = 'r=';
  1112.         rString = escape(ts);
  1113.         return pName + rString;
  1114.     }
  1115.     if (6 == type)
  1116.     {
  1117.         pName = 'MSID=';
  1118.         rString = escape(ts);
  1119.         return pName + rString;
  1120.     }
  1121.     if (7 == type)
  1122.     {
  1123.         pName = 'source=';
  1124.         rString = ts.toLowerCase();
  1125.         if(rString.indexOf("microsoft.com") != -1)
  1126.         {
  1127.             rString = rString.substring(0,rString.indexOf("microsoft.com"));
  1128.             if('' == rString)
  1129.             {
  1130.                 rString = "www";
  1131.             }    
  1132.             else
  1133.             {
  1134.                 rString = rString.substring(0,rString.length -1);
  1135.             }
  1136.         }
  1137.         return pName + rString;
  1138.     }
  1139.     if (8 == type)
  1140.     {
  1141.         pName = 'TYPE=';
  1142.         rString = escape(ts);
  1143.         return pName + rString;
  1144.     }
  1145.     rString = '';
  1146.     if(null != rArray)
  1147.     {
  1148.         if(0 == type)
  1149.         {
  1150.             for( j=0; j < rArray.length - 1; j++)
  1151.             {    
  1152.                 rString += rArray[j] + '_';  
  1153.             } 
  1154.         }
  1155.         else
  1156.         {
  1157.             for( j=0; j < rArray.length  ; j++)
  1158.             {
  1159.                 rString += rArray[j] + '_';  
  1160.             } 
  1161.         }
  1162.     }
  1163.     rString = rString.substring(0, rString.length - 1);           
  1164.     return pName + rString;
  1165. }
  1166.  
  1167.  
  1168. function setToolbarLocale(toolbarLocale)
  1169. {
  1170.     //document.writeln("<" + "script language='JavaScript' src='/libary/toolbar/loc/global-" + toolbarLocale + ".js' type='text/javascript'></" + "script>");
  1171.     document.writeln("<" + "script language='JavaScript' src='../loc/global-" + toolbarLocale + ".js' type='text/javascript'></" + "script>");
  1172.     return;
  1173. }
  1174. function scrollbaroptions(){
  1175. scrollcount ++;
  1176. if ( scrollcount < 3  )
  1177.     {
  1178.         scFlag = true;
  1179.     }else{
  1180.         scrollcount = 0;
  1181.         scFlag = false;
  1182.     }    
  1183. }
  1184.  
  1185.