/*
  $Id: dropdown-menu.js,v 1.6 2008/03/28 13:08:53 karuppannan Exp $
  */
var firstallow = false;
var delaytime = 1000;
var curr_menu;
var curr_context;
var IE5=document.all && document.getElementById;
var NS5=document.getElementById &&!document.all;

function GenerateMenus(ml)
{
	_menus = ml.menus;
	var menuHTML = '';
        for(var i=0;i<_menus.length;i++)
	{
		var _menu = _menus[i];
		menuHTML = menuHTML + '<div id="'+_menu.name+'" style="position:absolute;cursor:default;cursor:default;visibility:hidden;width:' + _menu.width + '" class="'+_menu.menustyle+'" oncontextmenu="return false;" onmouseover="clearTimerValue()" onmouseout="hideMenu(document.event, 150)">\n';
		var _menuitems = _menu.menuitems;
		for (var j=0; j < _menuitems.length;j++)
		{
			var _menuitem = _menuitems[j];
			if(_menuitem.type)
			{
				if(_menuitem.type == 'separator')
					menuHTML = menuHTML + '<hr class="'+_menu.separatorstyle+'">\n';
			}
			else
			{
				menuHTML = menuHTML + '<div id="'+_menuitem.name+'" class="'+ _menu.moutstyle+'" onmouseover="clearTimerValue();this.className = \''+_menu.moverstyle+'\';" onmouseout="this.className = \''+_menu.moutstyle+'\';"';
				if(_menuitem.width)
					menuHTML = menuHTML + ' style="width:' + _menuitem.width + '"';
				if(_menuitem.url)
					menuHTML = menuHTML +' url="'+_menuitem.url+'"';
				if(_menuitem.target)
					menuHTML = menuHTML +' target="'+_menuitem.target+'"';
				if(_menuitem.action)
					menuHTML = menuHTML +' action="'+_menuitem.action+'"';
				if(_menuitem.param)
					menuHTML = menuHTML +' param="'+_menuitem.param+'"';
				if(_menuitem.paramtype)
					menuHTML = menuHTML +' paramtype="'+_menuitem.paramtype+'"';
				menuHTML = menuHTML +' onclick="handleClick(this);">'+_menuitem.text+'</div>\n';
			}
		}
		menuHTML = menuHTML + '</div>\n';
		
	}
	document.write(menuHTML);
        
}

function ylib_getPageX(o) 
{ 
	var x=0; 
	if(document.layers) 
	{
		x=o.pageX; 
	}
	else 
	{ 
		while(eval(o)) 
		{
			x+=o.offsetLeft; 
			o=o.offsetParent; 
		} 
	} 
	return x; 
}

function ylib_getPageY(o) { var y=0; if(document.layers) y=o.pageY; else { while(eval(o)) { y+=o.offsetTop; o=o.offsetParent; } } return y; }

function showMenu(el,id,e,how)
{
	if(how && how == 'click')
		firstallow = true;
	else
		firstallow = false;
	if(curr_menu)
	{
		clearTimerValue();
		curr_menu.style.visibility="hidden";
	}
        
	curr_menu = document.getElementById(id);
	curr_context = el;
	var rightedge=IE5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX;
	var bottomedge=IE5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY;
       
	curr_menu.style.left = ylib_getPageX(curr_context);
	curr_menu.style.top = ylib_getPageY(curr_context) + 20;
	showDelayMenu();

	for(var i=0; i<window.frames.length; i++)
	{
		window.frames[i].document.onmouseover=hideMenu;
	}
//	document.onclick= hideMenu;
	return false;
}

function showDelayMenu()
{
	delayMenu = setTimeout("show()", 200);
}

function clearMenuTimerValue()
{
	if (typeof delayMenu!="undefined")
	{
		clearTimeout(delayMenu);
	}
}

function show()
{

	if(eval(autoHide) )
	{
		autoHide();
	}

	curr_menu.style.visibility="visible";
        //showHideCombos(curr_menu, ylib_getPageX(curr_menu), ylib_getPageY(curr_menu), 'hidden');
}


function hideMenu(e,deltime)
{
	if (NS5||IE5)
	{
		clearMenuTimerValue();
		delayVal = setTimeout("hideMenuAfterDelay()",deltime);
	}
	for(var i=0; i<window.frames.length; i++)
	{
		//window.frames[i].document.onmouseover=dummy1;
	}
}

function clearTimerValue()
{
	if (typeof delayVal!="undefined")
	{
		clearTimeout(delayVal);
	}
}

function hideMenuAfterDelay(e)
{
	if(NS5 && e && e.which && e.which ==3)
	{
		var obj=IE5? e.srcElement : e.target;
		if(curr_menu && curr_context == obj)return;
	}
	if(curr_menu) curr_menu.style.visibility="hidden";
	//showHideCombos(curr_menu, ylib_getPageX(curr_menu), ylib_getPageY(curr_menu), 'visible');
	document.onclick=clearTimerValue;
}

function handleClick(obj)
{
	if (obj.getAttribute("url"))
	{
		if(obj.getAttribute("target"))
		{
			window.open(obj.getAttribute("url"),obj.getAttribute("target"));
		}
		else
		{
			window.location=obj.getAttribute("url");
		}
	}
	else if (obj.getAttribute("action"))
	{
		var actionFunction = obj.getAttribute("action");
		var objParam;
		var objParamType;
		var conParam;
		var conParamType;
		if(obj.getAttribute("param"))
			objParam = obj.getAttribute("param");
		if(obj.getAttribute("paramtype"))
			objParamType = obj.getAttribute("paramtype");
		if(curr_context.getAttribute("param"))
			conParam = curr_context.getAttribute("param");
		if(curr_context.getAttribute("paramtype"))
			conParamType = curr_context.getAttribute("paramtype");
		var paramString = '';

		if(objParam && objParam != '')
		{
			if (objParamType && objParamType == 'object')
				paramString = paramString + '{' +objParam+ '}';
			else
				paramString = paramString + '\'' +objParam+ '\'';	
		}
		if(conParam && conParam != '')
		{
			if (conParamType && conParamType == 'object')
			{
				if(paramString == '')
					paramString = paramString + '{' +conParam+ '}';
				else
					paramString = paramString + ',{' +conParam+ '}';
			}
			else
			{
				if(paramString == '')
					paramString = paramString + '\'' +conParam+ '\'';	
				else
					paramString = paramString + ',\'' +conParam+ '\'';	
			}
		}
		var f = '';
		if(paramString != '' && objParam && objParam != '' && conParam && conParam != '')
		{
			f = actionFunction + '('+paramString+')';
		}
		else if(paramString != '' && objParam && objParam != '')
		{
			f = actionFunction + '('+paramString+',curr_context)';
		}
		else if(paramString != '' && conParam && conParam != '')
		{
			f = actionFunction + '(obj,'+paramString+')';
		}
		else
		{
			f = actionFunction + '(obj,curr_context)';
		}
		if (f != '')	
			eval(f);
	}
}

