var menuBgColor = "#e6eaee";
var menuBgColorOver = "#ccd6e0";
var disableHide = false;
var lastLayer = ""; // keep the last open layer name

var layerList = new Object();
var layerIdx  = 0;

function UBS_getImagePosition(imgName)
{
	var coords = new Object();
	coords.x = UBS_getX(document.images[imgName]);
	coords.y = UBS_getY(document.images[imgName]);
	return coords;
}

function UBS_getX(obj)
{
	if (obj)
	{
		if (ns4) return obj.x;

		return( obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+UBS_getX(obj.offsetParent) );
	}
}

function UBS_getY(obj)
{
	if (obj)
	{
		if (ns4) return obj.y;

		return( obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+UBS_getY(obj.offsetParent) );
	}
}

function UBS_updateLayerPosition(layerName,imgName)
{
	if (lastLayer==layerName)
	{
		UBS_hideAll(layerName);
	}
	else
	{
		disableHide = false;
		UBS_hideAll();
	}
	
	if (ns4)
	{
		var coords = UBS_getImagePosition(imgName);
		var x = coords.x;
		var y = coords.y + 6;

		var obj = document.layers[layerName];
		obj.x = x;
		obj.y = y;
		obj.visibility = "show";
	}
	else
	{
		var obj = (ie4) ? document.all[layerName] : document.getElementById(layerName);
		obj.align      = "left"; // override td alignment
		// obj.style.left = x;
		// obj.style.top  = y;
		obj.style.visibility = "visible";
	}

	UBS_showLayer('coverlayer');

	if (w3c||ie4)
	{
		disableHide = true;
		setTimeout("UBS_enableHide()",1000);
	}

	lastLayer = layerName;
}

function UBS_setLayerVisiblity(layerName,status)
{
	if (ns4)
	{
		document.layers[layerName].visibility = (status=="hidden") ? "hide" : "show";
	}
	else
	{
		var obj = (ie4) ? document.all[layerName] : document.getElementById(layerName);
		obj.style.visibility = status;
	}
}

function UBS_hideLayer(layerName)
{
	if (disableHide) return;

	UBS_setLayerVisiblity(layerName,"hidden");
}

function UBS_showLayer(layerName)
{
	UBS_setLayerVisiblity(layerName,"visible");
}

function UBS_hideAll(layerToIgnore)
{
	for (var i in layerList)
	{
		var layerName=layerList[i].name;
		if (layerName!=layerToIgnore) UBS_hideLayer(layerName);
	}
}

function UBS_tableHTML(layerObj)
{
	var layerName = layerObj.name;
	var html = "";
	html += "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"136\">";
	// ns4 bug: first row is not displayed
	if (ns4) html += "<tr><td><img src=\"/0.gif\"></td></tr>";

	for (var i in layerObj.links)
	{
		var text = layerObj.links[i].text;
		var link = layerObj.links[i].link;
		var bold = layerObj.links[i].bold ? "bold":"";

		if (link=="")
		{
			html += "<tr bgcolor=\""+menuBgColor+"\">";
			html += "<td><p class=\"metamenuitem\"><span class=\"menutext"+bold+"\">"+text+"</span></p></td>";
			html += "</tr>";
		}
		else
		{
			html += "<tr bgcolor=\""+menuBgColor+"\" onmouseover=\"this.bgColor='"+menuBgColorOver+"';\" onmouseout=\"this.bgColor='"+menuBgColor+"';\">";
			html += "<td><p class=\"metamenuitem\"><a href=\""+link+"\" class=\"menutext"+bold+"\">"+text+"</a></p></td>";
			html += "</tr>";
		}
	}
	html += "</table>";

	return html;
}

function UBS_layerHTML(layerObj)
{
	layerList[layerIdx++]=layerObj;

	var layerName = layerObj.name;
	var html = "";

	if (layerName=="coverlayer") return UBS_layerCover();

	if (ns4)
	{
		html = "<layer name=\""+layerName+"\" zIndex=\"15\" onmouseover=\"UBS_showLayer('"+layerName+"')\" onmouseout=\"UBS_hideLayer('"+layerName+"')\" visibility=\"hide\">"+UBS_tableHTML(layerObj)+"</layer>";
	}
	else
	{
		html = "<div id=\""+layerName+"\" onmouseover=\"UBS_showLayer('"+layerName+"')\" onmouseout=\"UBS_hideLayer('"+layerName+"')\">"+UBS_tableHTML(layerObj)+"</div>";
	}

	return html;
}

function UBS_layerCover()
{
	// special layer to hide layers (ie: bug when moving the mouse to fast)
	var html = "";

	if (ns4)
	{
		html = "<layer name=\"coverlayer\" left=\"0\" top=\"0\" onmouseover=\"UBS_hideAll()\" visibility=\"hide\"></layer>";
	}
	else
	{
		html = "<div id=\"coverlayer\" onmouseover=\"UBS_hideAll()\" onmousemove=\"UBS_hideAll()\"></div>";
	}

	return html;
}

function UBS_buildLinks(str)
{
	var pairsObj = str.split("|");
	var linksObj = new Object();
	for (var i in pairsObj)
	{
		var valuesObj = pairsObj[i].split(",");

		linksObj[i] = new Object();
		linksObj[i].text = valuesObj[0];
		linksObj[i].link = valuesObj[1];
		if (valuesObj[2]) linksObj[i].bold = valuesObj[2];
	}
	return linksObj;
}

function UBS_enableHide()
{
	disableHide = false;
}
var w3c = (document.getElementById) ? true : false;
var ns4 = (document.layers && !w3c) ? true : false;
var ie4 = (document.all && !w3c) ? true : false;
var opera = (window.opera) ? true : false;