var StyleStr = "";
var ToolBar_Supported = false;
var Frame_Supported   = true;
var DoInstrumentation = false;

//alert(navigator.userAgent);
if (navigator.userAgent.indexOf("MSIE")    != -1 && 
	navigator.userAgent.indexOf("Windows") != -1 && 
	navigator.appVersion.substring(0,1) > 3)
{
        ToolBar_Supported = true;
        StyleStr = "<STYLE type='text/css'>" +
                   " A:link{ color:#003399; }" +
                   " A:visited{ color:#003399; }" +
                   " A:hover{ color:red;     }" +
                   ".MyMenu{ font-size:xx-small;font-family:Verdana,Arial;text-decoration:none;cursor:hand;}" +
                   "</STYLE>";
}

if (ToolBar_Supported)
{
        var newLineChar = String.fromCharCode(10);
        var char34 = String.fromCharCode(34);
        var LockMyMenu = false;
        var LastMyMenu = "";
        var IsMenuDropDown = true;
        var HTMLStr;
        var x = 0;
        var y = 0;
        var x2 = 0;
        var y2 = 0;
        var MyMenuWidth;
        var ToolbarMinWidth;
        var ToolbarMenu;
        var ToolbarBGColor;
        var ToolbarLoaded = false;
        var aDefMyColor  = new Array(3);
        var aCurMyColor  = new Array(3);

        // Output style sheet and toolbar ID
        document.write(StyleStr);
        document.write("<SPAN ID='StartMenu' STYLE='display:none;'></SPAN>");

        // Build toolbar template
        HTMLStr = "<DIV ID='idToolbar'     STYLE='background-color:white;width:100%'>" +
                "<DIV ID='idRow1'        STYLE='position:relative;height:20;'>" +
                "<DIV ID='idMyBanner'   STYLE='position:absolute;top:0;left:0;height:98;width:294;overflow:hidden;vertical-align:top;'><!--BEG_ICP_BANNER--><!--END_ICP_BANNER--></DIV>" +
                "<DIV ID='idMyMenuCurve' STYLE='position:absolute;top:0;left:250;height:76;width:233;overflow:hidden;vertical-align:top;'><IMG SRC='http://www.therichardsons.org/global/toolbar/curve.gif' BORDER=0></DIV>" +
                "<DIV ID='idMyMenuPane'  CLASS='MyMenuPane' STYLE='position:absolute;top:0;left:250;height:20;width:10;background-color:black;float:right;' NOWRAP><!--My_MENU_TITLES--></DIV>" +
                "</DIV>" +
   		        "<DIV ID='idRow2' STYLE='position:relative;left:250;height:40;'>" +
		        "<DIV ID='idAddBanner'   STYLE='position:absolute;top:0;left:195;height:40;width:217;vertical-align:top;overflow:hidden;' ALIGN=RIGHT><!--BEG_MSC_BANNER--><!--END_MSC_BANNER--></DIV>" +
		        "<DIV ID='idRow3' STYLE='position:relative;height:20;width:100%'>" +
		        "</DIV>" +                
		        "</DIV>" +
                "<SCRIPT TYPE='text/javascript'>" + 
                "   var ToolbarMenu = StartMenu;" + 
                "</SCRIPT>" + 
                "<DIV WIDTH=100%>";

        // Define event handlers
        window.onresize  = resizeToolbar;
        document.onmouseover = hideMenu;

        // Intialize global variables
        ToolbarBGColor  = "white";                                              // toolbar background color
        
        aDefMyColor[0]  = aCurMyColor[0]  = "black";    // bgcolor;
        aDefMyColor[1]  = aCurMyColor[1]  = "white";    // text font color
        aDefMyColor[2]  = aCurMyColor[2]  = "red";              // mouseover font color

}

// The hard-coded numbers in functions - drawToolbar() & resizeToolbar()
// correspond to the dimension of the four gif files:
//              MyC_BANNER: 40h x 112w
//              Curve:      20h x 18w

function drawToolbar() {
        HTMLStr += "</DIV>";
        document.write(HTMLStr);
        ToolbarLoaded = true;

        MyMenuWidth     = Math.max(idMyMenuPane.offsetWidth, (200+112));
        ToolbarMinWidth = (477+18) + MyMenuWidth;

        idToolbar.style.backgroundColor     = ToolbarBGColor;
        idMyMenuPane.style.backgroundColor  = aDefMyColor[0];
        resizeToolbar();
}

function resizeToolbar() {
        if (ToolBar_Supported == false) return;

        w = Math.max(ToolbarMinWidth, document.body.clientWidth) - ToolbarMinWidth;
        
        idMyMenuCurve.style.left  = (294);
        idMyMenuPane.style.left   = (document.body.clientWidth - 477);

	    idAddBanner.style.left    = (w+18-33);
	    idAddBanner.style.width   = (MyMenuWidth - 100);
        
        idMyMenuPane.style.width  = MyMenuWidth;
}

function setToolbarBGColor(color) {     
        ToolbarBGColor = color;
        if (ToolbarLoaded == true)
                idToolbar.style.backgroundColor = ToolbarBGColor;
}

function setDefaultMyMenuColor(bgColor, fontColor, mouseoverColor) {    
        if (bgColor   != "")      aDefMyColor[0] = bgColor;
        if (fontColor != "")      aDefMyColor[1] = fontColor;
        if (mouseoverColor != "") aDefMyColor[2] = mouseoverColor;
}

/**** Banner functions ****/
function setMyBanner(Gif,Url,AltStr)
{	setBanner(Gif,Url,AltStr,"<!--BEG_ICP_BANNER-->","<!--END_ICP_BANNER-->");
}
function setAddBanner(Gif,Url,AltStr)
{	setBanner(Gif,Url,AltStr,"<!--BEG_MSC_BANNER-->","<!--END_MSC_BANNER-->");
}

function setBanner(BanGif, BanUrl, BanAltStr, BanBegTag, BanEndTag)
{
	begPos = HTMLStr.indexOf(BanBegTag);
	endPos = HTMLStr.indexOf(BanEndTag) + BanEndTag.length;
	
	SubStr = HTMLStr.substring(begPos, endPos);
	SrcStr = "";
	if (BanUrl != "")
		SrcStr += "<A HREF='" + formatURL(BanUrl, BanGif) + "'>";
	SrcStr += "<IMG SRC='" + BanGif + "' ALT='" + BanAltStr + "' BORDER=0>";
	if (BanUrl != "")
		SrcStr += "</A>";
	SrcStr = BanBegTag + SrcStr + BanEndTag;
	HTMLStr = HTMLStr.replace(SubStr, SrcStr);	
}

function addMyMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr) {        
        TargetStr = "_top";
        tempID = "My_" + MenuIDStr;
        addMenu(tempID, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr); 
        LastMyMenu = tempID;
}

function addMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr) {
        cStyle  = "MyMenu";
        cColor0 = aDefMyColor[0];
        cColor1 = aDefMyColor[1];
        cColor2 = aDefMyColor[2];
        tagStr  = "<!--My_MENU_TITLES-->";

        MenuStr = newLineChar;
        if (LastMyMenu != "") {
          MenuStr += "<SPAN CLASS='" + cStyle + "' STYLE='color:" + cColor1 + "'>|&nbsp;</SPAN>"; 
        }
        MenuStr += "<A TARGET='" + TargetStr + "' TITLE='" + MenuHelpStr + "'" +
                   " ID='AM_" + MenuIDStr + "' CLASS='" + cStyle + "'" +
                   " STYLE='background-color:" + cColor0 + ";color:" + cColor1 + ";'";
        if (MenuURLStr != "") {
          MenuStr += " HREF='" + formatURL(MenuURLStr, ("My_" + MenuDisplayStr)) + "'";
        }
        MenuStr += " onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "');" + char34 + 
                   " onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "'); doMenu('"+ MenuIDStr + "');" + char34 + ">" +
                   "&nbsp;" + MenuDisplayStr + "&nbsp;</a>";
        MenuStr += tagStr;
        HTMLStr = HTMLStr.replace(tagStr, MenuStr);     
}

function addMySubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr) {   
        TargetStr = "_top";
        tempID = "My_" + MenuIDStr;
        addSubMenu(tempID,SubMenuStr,SubMenuURLStr,TargetStr); 
}

function addSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr, TargetStr)
{
        cStyle  = "MyMenu";
        cColor0 = aDefMyColor[0];
        cColor1 = aDefMyColor[1];
        cColor2 = aDefMyColor[2];
        
        var MenuPos = MenuIDStr.toUpperCase().indexOf("MENU");
        if (MenuPos == -1) { MenuPos = MenuIDStr.length; }
        InstrumentStr = MenuIDStr.substring(0 , MenuPos) + " | " + SubMenuStr;;
        URLStr        = formatURL(SubMenuURLStr, InstrumentStr);

        var LookUpTag  = "<!--" + MenuIDStr + "-->";
        var sPos = HTMLStr.indexOf(LookUpTag);
        if (sPos <= 0) {
                HTMLStr += newLineChar + newLineChar +
                                "<SPAN ID='" + MenuIDStr + "'" +
                                " STYLE='display:none;position:absolute;width:160;background-color:" + cColor0 + ";padding-top:0;padding-left:0;padding-bottom:20;z-index:9;'" +
                                " onmouseover='keepMenu();'>";

                if (Frame_Supported == false) {
                        HTMLStr += "<HR  STYLE='position:absolute;left:0;top:0;color:" + cColor1 + "' SIZE=1>";
                }
                HTMLStr +=      "<DIV STYLE='position:relative;left:0;top:8;'>" +
                                "<A ID='AS_" + MenuIDStr + "'" +
                                "   CLASS='" + cStyle + "'" + 
                                "   STYLE='color:" + cColor1 + "'" +
                                "   HREF='" + URLStr + "' TARGET='" + TargetStr + "'" +
                                " onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "');" + char34 + 
                                " onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "');" + char34 + ">" +
                                "&nbsp;" + SubMenuStr + "</A><BR>" + LookUpTag +
                                "</DIV>" +
                                "</SPAN>";
        } else {
                TempStr = newLineChar +
                                "<A ID='AS_" + MenuIDStr + "'" +
                                "   CLASS='" + cStyle + "'" + 
                                "   STYLE='color:" + cColor1 + "'" +
                                "   HREF='" + URLStr + "' TARGET='" + TargetStr + "'" +
                                " onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "');" + char34 + 
                                " onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "');" + char34 + ">" +
                                "&nbsp;" + SubMenuStr + "</A><BR>" + LookUpTag;
                HTMLStr = HTMLStr.replace(LookUpTag, TempStr);  
        }
}

/**** Add SubMenuLine Functions ****
 ****/

function addMySubMenuLine(MenuIDStr) {  
        tempID = "My_" + MenuIDStr;
        addSubMenuLine(tempID);
}

function addSubMenuLine(MenuIDStr) {
        var LookUpTag = "<!--" + MenuIDStr + "-->";
        var sPos = HTMLStr.indexOf(LookUpTag);
        if (sPos > 0) {
                cColor  = aDefMyColor[1];
                TempStr = newLineChar + "<HR STYLE='color:" + cColor + "' SIZE=1>" + LookUpTag;
                HTMLStr = HTMLStr.replace(LookUpTag, TempStr);
        }
}

/**** Event Functions ****
 ****/

// Change menu mouseover / mouseout color
function mouseMenu(id, MenuIDStr) 
{
        IsMouseout = (id.toUpperCase().indexOf("OUT") != -1);

        if (IsMouseout) {
          color =  aDefMyColor[1];
        } else {
           color = aDefMyColor[2];
        }
        window.event.srcElement.style.color = color;
}

function doMenu(MenuIDStr) 
{
        var thisMenu = document.all(MenuIDStr);
        if (ToolbarMenu == null || thisMenu == null || thisMenu == ToolbarMenu) {
          window.event.cancelBubble = true;
          return false;
        }

        // Reset dropdown menu
        window.event.cancelBubble = true;
        ToolbarMenu.style.display = "none";
        showElement("SELECT");
        showElement("OBJECT");
        ToolbarMenu = thisMenu;
        // Set dropdown menu display position
        x  = window.event.srcElement.offsetLeft + window.event.srcElement.offsetParent.offsetLeft;
        if (MenuIDStr == LastMyMenu) {
          x += (window.event.srcElement.offsetWidth - 160);
          x2 = x + 160;
        } else {
          x2 = x + window.event.srcElement.offsetWidth;
        }
        y  = (idRow1.offsetHeight)
        thisMenu.style.top  = y;
        thisMenu.style.left = x;
        thisMenu.style.clip = "rect(0 0 0 0)";
        thisMenu.style.display = "block";

        // delay 2 millsecond to allow the value of ToolbarMenu.offsetHeight be set
        window.setTimeout("showMenu()", 2);
        return true;
}

function showMenu() 
{
        if (ToolbarMenu != null) 
        { 
                y2 = y + ToolbarMenu.offsetHeight;
                ToolbarMenu.style.clip = "rect(auto auto auto auto)";
                hideElement("SELECT");
                hideElement("OBJECT");
        }
}

function hideMenu()
{
        if (ToolbarMenu != null && ToolbarMenu != StartMenu) 
        {
                // Don't hide the menu if the mouse move between the menu and submenus
                cY = event.clientY + document.body.scrollTop;
                if ( (event.clientX >= x && event.clientX <= x2 && event.clientX != (x+1)) &&
                         ((IsMenuDropDown == true  && cY > (y-10) && cY <= y2)      ||
                          (IsMenuDropDown == false && cY >= y     && cY <= (y2+10)) ))
                {
                        window.event.cancelBubble = true;
                        return; 
                }

                ToolbarMenu.style.display = "none";
                ToolbarMenu = StartMenu;
                window.event.cancelBubble = true;

                showElement("SELECT");
                showElement("OBJECT");
        }
}

function keepMenu()
{
        window.event.cancelBubble = true;
}

function hideElement(elmID)
{
        // Hide any element that overlaps with the dropdown menu
        for (i = 0; i < document.all.tags(elmID).length; i++)
        {
                obj = document.all.tags(elmID)[i];

                // Find the element's offsetTop and offsetLeft relative to the BODY tag.
                objLeft   = obj.offsetLeft;
                objTop    = obj.offsetTop;
                objParent = obj.offsetParent;
                while (objParent.tagName.toUpperCase() != "BODY")
                {
                        objLeft  += objParent.offsetLeft;
                        objTop   += objParent.offsetTop;
                        objParent = objParent.offsetParent;
                }
                // Adjust the element's offsetTop relative to the dropdown menu
                objTop = objTop - y;

                if (x > (objLeft + obj.offsetWidth) || objLeft > (x + ToolbarMenu.offsetWidth))
                        ;
                else if (objTop > ToolbarMenu.offsetHeight)
                        ;
                else if (y + ToolbarMenu.offsetHeight <= 80)
                        ;
                else
                {
                        obj.style.visibility = "hidden";
                }
        }
}

function showElement(elmID)
{
        // Display any element that was hiddend
        for (i = 0; i < document.all.tags(elmID).length; i++)
                document.all.tags(elmID)[i].style.visibility = "";
}

function formatURL(URLStr, InstrumentStr)
{
        var tempStr = URLStr;

        if (DoInstrumentation && URLStr != "" )
        {
                var ParamPos1 = URLStr.indexOf("?");
                var ParamPos2 = URLStr.lastIndexOf("?");
                var ParamPos3 = URLStr.toLowerCase().indexOf("target=");

                if (ParamPos1 == -1)
                        tempStr = "?MyCOMTB=";
                else if (ParamPos1 == ParamPos2 && ParamPos3 == -1)     
                        tempStr = "&MyCOMTB=";
                else if (ParamPos1 == ParamPos2 && ParamPos3 != -1)     
                        tempStr = "?MyCOMTB=";
                else if (ParamPos1 < ParamPos2)
                        tempStr = "&MyCOMTB=";

                tempStr = URLStr + tempStr + InstrumentStr;
        }
        return tempStr;
}

function Lock(FunctionName ) {
        var FName = FunctionName.toUpperCase();
        LockMyMenu = true;      
}
