var StyleStr = "";
var ToolBar_Supported = false;
var Frame_Supported   = false;
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	{ font-family: Verdana, Helvetica, sans-serif; font-size: 11; font-style: bold; font-weight: normal; color: #000099; text-decoration: none; cursor:hand;}" +
				" A:hover	{ font-family: Verdana, Helvetica, sans-serif; font-size: 11; font-style: bold; font-weight: normal; color: #ff0000; text-decoration: underline; cursor:hand;}" +
                " A:active  { font-family: Verdana, Helvetica, sans-serif; font-size: 11; font-style: bold; font-weight: normal; color: #000000; text-decoration: none; cursor:hand;}" +
                " A:visited	{ font-family: Verdana, Helvetica, sans-serif; font-size: 11; font-style: bold; font-weight: normal; color: #339999; text-decoration: none; cursor:hand;}" +
				".SiteMenu	{ font-family: Verdana, Helvetica, sans-serif; font-size: 11; font-style: bold; font-weight: normal; text-decoration:none; cursor:hand;}" +
				".ASMARMenu	{ font-family: Verdana, Helvetica, sans-serif; font-size: 11; font-style: bold; font-weight: normal; text-decoration:none; cursor:hand;}" +
				"</STYLE>";
}

if (ToolBar_Supported)
{
	var newLineChar = String.fromCharCode(10);
	var char34 = String.fromCharCode(34);
	var LockSiteMenu = false;
	var LockASMARMenu = false;
	var LastSiteMenu = "";
	var CurASMARMenu = "";
	var IsSiteMenu = false;
	var IsMenuDropDown = true;
	var HTMLStr;
	var x = 0;
	var y = 0;
	var x2 = 0;
	var y2 = 0;
	var SiteMenuWidth;
	var ToolbarMinWidth;
	var ToolbarMenu;
	var ToolbarBGColor;
	var ToolbarLoaded = false;
	var aDefSiteColor  = new Array(3);
	var aDefASMARColor = new Array(3);
	var aCurSiteColor  = new Array(3);
	var aCurASMARColor = 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:22;bacground-color:white;'>" +
		"<DIV ID='idASMARBanner'   STYLE='position:absolute;top:0;left:0;height:60;width:250;vertical-align:top;'><!--BEG_ICP_BANNER--><!--END_ICP_BANNER--></DIV>" +
		"<DIV ID='idSiteMenuCurve' STYLE='position:absolute;top:0;left:250;height:20;width:18;vertical-align:top;bacground-color:white'></DIV>" +
		"<DIV ID='idSiteMenuPane'  CLASS='SiteMenuPane' STYLE='position:absolute;top:2;left:150;height:20;width:10;background-color:white;float:right;' NOWRAP><!--MS_MENU_TITLES--></DIV>" + 
		"</DIV>" +
		"<DIV ID='idRow2' STYLE='position:relative;left:250;height:40;bacground-color:white'>" +
		"<DIV ID='idADSBanner'   STYLE='position:absolute;top:0;left:0;height:60;width:200;vertical-align:top;'><!--BEG_ADS_BANNER--><!--END_ADS_BANNER--></DIV>" +
		"<DIV ID='idMSCBanner'   STYLE='position:absolute;top:0;left:200;height:60;width:112;vertical-align:top;overflow:hidden;'><!--BEG_MSC_BANNER--><!--END_MSC_BANNER--></DIV>" +
		"</DIV>" +
		"<DIV ID='idRow3' STYLE='position:relative;height:20;width:100%'>" +
		"<DIV ID='idASMARMenuPane' CLASS='ASMARMenuPane' STYLE='position:absolute;top:0;left:0;height:20;background-color:white;' NOWRAP><!--ICP_MENU_TITLES--></DIV>" +
		"</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
	
	aDefSiteColor[0]  = aCurSiteColor[0]  = "#000066";	// bgcolor;
	aDefSiteColor[1]  = aCurSiteColor[1]  = "white";	// text font color
	aDefSiteColor[2]  = aCurSiteColor[2]  = "#33FFCC";		// mouseover font color
	
	aDefASMARColor[0] = aCurASMARColor[0] = "#000066"; // bgcolor;
	aDefASMARColor[1] = aCurASMARColor[1] = "white";	 // text font color
	aDefASMARColor[2] = aCurASMARColor[2] = "#33FFCC";	 // mouseover font color
}

// The hard-coded numbers in functions - drawToolbar() & resizeToolbar()
// correspond to the dimension of the four gif files:
//		ICP_BANNER: 60h x 250w
//		ADS_BANNER: 40h x 200w
//		MSC_BANNER: 40h x 112w
//		Curve:	    20h x 18w

function drawToolbar()
{
	HTMLStr += "</DIV>";
	document.write(HTMLStr);
	ToolbarLoaded = true;

	SiteMenuWidth     = Math.max(idSiteMenuPane.offsetWidth, (200+112));
	ToolbarMinWidth = (250+18) + SiteMenuWidth;

	idToolbar.style.backgroundColor     = ToolbarBGColor;
	idSiteMenuPane.style.backgroundColor  = aDefSiteColor[0];
	idASMARMenuPane.style.backgroundColor = aDefASMARColor[0];
	resizeToolbar();
}

function resizeToolbar()
{
	if (ToolBar_Supported == false) return;

	w = Math.max(ToolbarMinWidth, document.body.clientWidth) - ToolbarMinWidth;
	
	idSiteMenuCurve.style.left  = (250+w);
	idSiteMenuPane.style.left   = (250+w+18);
	idSiteMenuPane.style.width  = SiteMenuWidth;

	idADSBanner.style.left    = (w+18);

	idMSCBanner.style.left    = (w+18+200);
	idMSCBanner.style.width   = (SiteMenuWidth - 200);
	
	idASMARMenuPane.style.width = ToolbarMinWidth + w;
}

function setToolbarBGColor(color)
{	
	ToolbarBGColor = color;
	if (ToolbarLoaded == true)
		idToolbar.style.backgroundColor = ToolbarBGColor;
}	

function setDefaultSiteMenuColor(bgColor, fontColor, mouseoverColor)
{	
	if (bgColor   != "")	  aDefSiteColor[0] = bgColor;
	if (fontColor != "")	  aDefSiteColor[1] = fontColor;
	if (mouseoverColor != "") aDefSiteColor[2] = mouseoverColor;
}

function setDefaultASMARMenuColor(bgColor, fontColor, mouseoverColor)
{	
	if (bgColor   != "")	  aDefASMARColor[0] = bgColor;
	if (fontColor != "")	  aDefASMARColor[1] = fontColor;
	if (mouseoverColor != "") aDefASMARColor[2] = mouseoverColor;
}

function setASMARMenuColor(MenuIDStr, bgColor, fontColor, mouseoverColor)
{	
	if (ToolbarLoaded == false) return;

	// Reset previous ICP Menu color if any
	if (CurASMARMenu != "")
	{
		PrevID = CurASMARMenu.substring(4);
		CurASMARMenu = "";
		setASMARMenuColor(PrevID, aDefASMARColor[0], aDefASMARColor[1], aDefASMARColor[2]);
	}

	var	id = "AM_" + "ICP_" + MenuIDStr;
	var thisMenu = document.all(id);
	if (thisMenu != null)
	{
		CurASMARMenu = "ICP_" + MenuIDStr;
		aCurASMARColor[0] = bgColor;
		aCurASMARColor[1] = fontColor;
		aCurASMARColor[2] = mouseoverColor;

		// Change menu color
		if (bgColor != "")
			thisMenu.style.backgroundColor = bgColor;
		if (fontColor != "")
			thisMenu.style.color = fontColor;

		// Change subMenu color
		id = "ICP_" + MenuIDStr;
		thisMenu = document.all(id);
		if (thisMenu != null)
		{
			if (bgColor != "")
				thisMenu.style.backgroundColor = bgColor;
			
			if (fontColor != "")
			{
				i = 0;
				id = "AS_" + "ICP_" + MenuIDStr;
				thisMenu = document.all.item(id,i);
				while (thisMenu != null)
				{
					thisMenu.style.color = fontColor;
					i += 1;
					thisMenu = document.all.item(id,i);
				}
			}
		}
	}
}

/**** Banner functions ****
 ****/
function setAds(Gif,Url,AltStr)
{	setBanner(Gif,Url,AltStr,"<!--BEG_ADS_BANNER-->","<!--END_ADS_BANNER-->");
}

function setASMARBanner(Gif,Url,AltStr)
{	setBanner(Gif,Url,AltStr,"<!--BEG_ICP_BANNER-->","<!--END_ICP_BANNER-->");
}

function setRightBanner(Gif,Url,AltStr)
{	tempGif = "images/" + Gif;
	setBanner(tempGif,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);	
}

/**** Add Menu Function ***
 ****/
function addASMARMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr)
{ 	
	if (LockASMARMenu == true) return;

	if (addASMARMenu.arguments.length > 4)
		TargetStr = addASMARMenu.arguments[4];
	else
		TargetStr = "_top";
	tempID = "ICP_" + MenuIDStr;
	addMenu(tempID, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr, true); 
}

function addSiteMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr)
{	
	if (LockASMARMenu == true) return;
	TargetStr = "_top";
	tempID = "MS_" + MenuIDStr;
	addMenu(tempID, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr, false); 
	LastSiteMenu = tempID;
}

function addMenu(MenuIDStr, MenuDisplayStr, MenuHelpStr, MenuURLStr, TargetStr, bASMARMenu)
{
	cStyle  = bASMARMenu? "ASMARMenu"        : "SiteMenu";
	cColor0 = bASMARMenu? aDefASMARColor[0] : aDefSiteColor[0];
	cColor1 = bASMARMenu? aDefASMARColor[1] : aDefSiteColor[1];
	cColor2 = bASMARMenu? aDefASMARColor[2] : aDefSiteColor[2];
	tagStr  = bASMARMenu? "<!--ICP_MENU_TITLES-->" : "<!--MS_MENU_TITLES-->";

	MenuStr = newLineChar;
	if (bASMARMenu == false && LastSiteMenu != "")
		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 != "")
	{
		if (bASMARMenu)
			MenuStr += " HREF='" + formatURL(MenuURLStr, ("ICP_" + MenuDisplayStr)) + "'";
		else
			MenuStr += " HREF='" + formatURL(MenuURLStr, ("MS_" + MenuDisplayStr)) + "'";
	}
	MenuStr += 	" onmouseout="  + char34 + "mouseMenu('out' ,'" + MenuIDStr + "');" + char34 + 
				" onmouseover=" + char34 + "mouseMenu('over','" + MenuIDStr + "'); doMenu('"+ MenuIDStr + "');" + char34 + ">" +
				"&nbsp;" + MenuDisplayStr + "&nbsp;</a>";
	if (bASMARMenu)
		MenuStr += "<SPAN CLASS='" + cStyle + "' STYLE='color:" + cColor1 + "'>&nbsp;|</SPAN>";
	MenuStr += tagStr;
	
	HTMLStr = HTMLStr.replace(tagStr, MenuStr);	
}

/**** Add SubMenu Function ****
 ****/
function addASMARSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr)
{	
	if (addASMARSubMenu.arguments.length > 3)
		TargetStr = addASMARSubMenu.arguments[3];
	else
		TargetStr = "_top";
	tempID = "ICP_" + MenuIDStr;
	addSubMenu(tempID,SubMenuStr,SubMenuURLStr,TargetStr,true); 
}

function addSiteSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr)
{	
	TargetStr = "_top";
	tempID = "MS_" + MenuIDStr;
	addSubMenu(tempID,SubMenuStr,SubMenuURLStr,TargetStr,false); 
}

function addSubMenu(MenuIDStr, SubMenuStr, SubMenuURLStr, TargetStr, bASMARMenu)
{
	cStyle  = bASMARMenu? "ASMARMenu"       : "SiteMenu";
	cColor0 = bASMARMenu? aDefASMARColor[0] : aDefSiteColor[0];
	cColor1 = bASMARMenu? aDefASMARColor[1] : aDefSiteColor[1];
	cColor2 = bASMARMenu? aDefASMARColor[2] : aDefSiteColor[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 || bASMARMenu == 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 addASMARSubMenuLine(MenuIDStr)
{	
	tempID = "ICP_" + MenuIDStr;
	addSubMenuLine(tempID,true);
}

function addSiteSubMenuLine(MenuIDStr)
{	
	tempID = "MS_" + MenuIDStr;
	addSubMenuLine(tempID,false);
}

function addSubMenuLine(MenuIDStr, bICPMenu)
{
	var LookUpTag = "<!--" + MenuIDStr + "-->";
	var sPos = HTMLStr.indexOf(LookUpTag);
	if (sPos > 0)
	{
		cColor  = bICPMenu? aDefASMARColor[1] : aDefSiteColor[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) 
{
	IsSiteMenu   = (MenuIDStr.toUpperCase().indexOf("MS_") != -1);
	IsMouseout = (id.toUpperCase().indexOf("OUT") != -1);

	if (IsMouseout)
	{
		color = IsSiteMenu? aDefSiteColor[1] : aDefASMARColor[1];
		if (MenuIDStr == CurASMARMenu && aCurASMARColor[1] != "") 
			color = aCurASMARColor[1];
	}
	else
	{
		color = IsSiteMenu? aDefSiteColor[2] : aDefASMARColor[2];
		if (MenuIDStr == CurASMARMenu && aCurASMARColor[2] != "") 
			color = aCurASMARColor[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;
	IsSiteMenu = (MenuIDStr.toUpperCase().indexOf("MS_") != -1);

	// Set dropdown menu display position
	x  = window.event.srcElement.offsetLeft +
	 	 window.event.srcElement.offsetParent.offsetLeft;
	if (MenuIDStr == LastSiteMenu)
	{
		x += (window.event.srcElement.offsetWidth - 160);
		x2 = x + 160;
	}
	else
	{
		x2 = x + window.event.srcElement.offsetWidth;
	}
	y  = (IsSiteMenu)? 
		 (idRow1.offsetHeight) :
		 (idRow1.offsetHeight + idRow2.offsetHeight + idRow3.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) 
	{ 
		IsMenuDropDown = (Frame_Supported && IsSiteMenu == false)? false : true;
		if (IsMenuDropDown == false)
		{
			y = (y - ToolbarMenu.offsetHeight - idRow3.offsetHeight);
			if (y < 0) y = 0;
			ToolbarMenu.style.top = y;
		}
		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 (IsSiteMenu && (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 != "" )
	{
		tempStr = URLStr;
	}
	return tempStr;
}

function Lock(FunctionName )
{
	var FName = FunctionName.toUpperCase();
	if ( FName == "ADDICPMENU" )
	{
		LockASMARMenu = true;
	}
	else if ( FName == "ADDMSMENU" )
	{
		LockSiteMenu = true;	
	}
}
