function menu(thisObjVarName, tblMenu, divMenu)
{
	var o = this;
	var m_tbl = document.getElementById(tblMenu);
	var m_div = document.getElementById(divMenu);
	var m_div_currWidth = 0;
	var m_div_moveX;
	var m_sURL;
	
	var m_timer  = -1;
	
	o.menuOver = function menuOver(obj,img_over,w,sURL)
	{
		if (m_timer != -1)
			clearTimeout(m_timer);
		
		if (sURL) {
			m_sURL = sURL;
			m_div.onclick = goUrl;
		}
		else
			m_div.onclick = "";
				
		m_div.style.left = obj.offsetLeft + m_tbl.offsetLeft;
		m_div.style.top = obj.offsetTop + m_tbl.offsetTop;
		m_div.style.width = m_div_currWidth = 0;
		m_div.style.height = obj.offsetHeight;
		m_div.style.backgroundImage = "url('" + img_over + "')";

		m_div_moveX = parseInt(w/10);
		m_timer = setTimeout(thisObjVarName + ".menuDelay("+ w + ",true)",10);
	}	
	
	function goUrl()
	{
		location.href = m_sURL;
	}
	
	o.menuOut = function menuOut()
	{
		if (m_div_currWidth == 0 && m_div.offsetWidth == 0)
			return;
			
		if (m_timer != -1)
			clearTimeout(m_timer);

		m_div.innerHTML = "";
		m_div_moveX = parseInt(m_div.offsetWidth/10);
		if (m_div_moveX == 0)
			m_div_moveX = 10;
		
		m_timer = setTimeout(thisObjVarName + ".menuDelay("+ parseInt(m_div.offsetWidth) + ",false)",10);
	}

	o.menuDelay = function menuDelay(w,bShow)
	{
		if (bShow)
			m_div_currWidth += m_div_moveX;
		else
			m_div_currWidth -= m_div_moveX;
		
		if (bShow) {
			if (m_div_currWidth < w)
				m_timer = setTimeout(thisObjVarName + ".menuDelay("+ w + ",true)", 10);
			else {
				m_div_currWidth = w;
				m_div.onmouseout  = o.menuOut;
				m_timer = -1;
			}
		}
		else {
			if (m_div_currWidth > 0)
				m_timer = setTimeout(thisObjVarName + ".menuDelay("+ w + ",false)", 10);
			else {
				m_div_currWidth = 0;
				m_timer = -1;
			}
		}
		m_div.style.width = m_div_currWidth;
	}
}

