var _isIE=(navigator.appName.indexOf("Microsoft")!=-1 ? true : false);
var _isDOM = ((document.getElementById && !_isIE) ? true : false); 
//var _isIE = ((document.all && !_isDOM) ? true : false);
var _isNS = (document.layers ? true : false);
var menuTimer=null;
var lastSelection=-1;
var mindex=0;


//* Initialization function
function DisplayObjects()
	{
	DisplayMenus();
	DisplayButtons();
	}

function BaseMenu(text,parentID,cellClass,overClass,icon,width)
	{
	this.LevelID=-1;
	this.UniqueID=mindex++;
	this.ParentID=parentID;
	this.CellClass=cellClass;
	this.OverClass=overClass;
	this.Text=text;
	this.Icon=icon;
	this.Width=width;
	this.subPtr=null;
	this.ParentMenu=null;
	}
	
function MenuItem(text,cellClass,overClass,icon,width,url,trg)
	{
	this.LevelID=-1;
	this.UniqueID=mindex++;
	this.CellClass=cellClass;
	this.OverClass=overClass;
	this.Text=text;
	this.Icon=icon;
	this.Width=width;
	this.url=url;
	this.target=(((trg=='') || (trg==null))?"_self":trg);
	this.subPtr=null;
	this.ParentMenu=null;
	}
	
function Button(text,parentID,cellClass,overClass,icon,width,xurl,trg)
	{
	this.LevelID=-1;
	this.UniqueID=mindex++;
	this.ParentID=parentID;
	this.CellClass=cellClass;
	this.OverClass=overClass;
	this.Text=text;
	this.Icon=icon;
	this.Width=width;
	this.url=xurl;
	this.target=(((trg=='') || (trg==null))?"_self":trg);
	}

function GetDocID(id) 
	{
	if (_isDOM) return document.getElementById(id);
	if (_isIE) return document.all(id);
	if (_isNS) return document.layers[id];
	}

function GetStyle(id) 
	{
	return (_isNS ? GetDocID(id) : GetDocID(id).style);
	} 

function DisplayMenus()
	{
	var str;
	var bm;
	
	for (bm=0;bm<bMenu.length;bm++)
		with (bMenu[bm])
		{
		str='';
		str+='<table id="m' + UniqueID + '" class="' + CellClass + '"';
		if (Width!="")
			str+=' width="'+Width+'"';
		 else
			str+=' width="100%"';			
		str+=' onmouseover="MenuDn('+UniqueID+',\''+OverClass+'\')" onmouseout="MenuUp('+UniqueID+',\''+CellClass+'\')"';
		str+='><tr>';
		if (Icon!='')
			str+='<td><img src="'+Icon+'"/></td>';
		str+='<td>'+Text+'</td></tr></table>';
		GetDocID(ParentID).innerHTML=str;
		}
	}

function DisplayButtons()
	{
	var str;
	var bm;
	
	for (bm=0;bm<bButtons.length;bm++)
		with (bButtons[bm])
		{
		str='';
		str+='<table id="m' + UniqueID + '" class="' + CellClass + '"';
		if (Width!="")
			str+=' width="'+Width+'"';
		 else
			str+=' width="100%"';			
		str+=' onmouseover="BtnDn('+UniqueID+',\''+OverClass+'\')" onmouseout="BtnUp('+UniqueID+',\''+CellClass+'\')"';
		if (url!="")
			 str+=' onclick="window.open(\''+url+'\',\''+target+'\')"';
		str+='><tr>';
		if (Icon!='')
			str+='<td><img src="'+Icon+'"/></td>';
		str+='<td>'+Text+'</td></tr></table>';
		GetDocID(ParentID).innerHTML=str;
		}
	}

function SearchMenuIndex(item,index)
	{
	var i;
	var ptr;
	for (i=0;i<item.length;i++)
		{
		if (item[i].UniqueID==index) return(item[i]);
		if (item[i].subPtr) 
			{
			ptr=SearchMenuIndex(item[i].subPtr,index);
			if (ptr) return(ptr);
			}
		}
	return(null);
	}
	
function MenuIndex(index)
	{
	return(SearchMenuIndex(bMenu,index));
	}
	
function BtnUp(mn,strClassName)
	{
	GetDocID('m'+mn).className=strClassName;
	}

function BtnDn(mn,strClassName)
	{
	GetDocID('m'+mn).className=strClassName;
	}
	
function OpenItem(mn)
	{
	var obj=MenuIndex(mn);
	alert(obj.url);
	window.open(obj.url,obj.target);
	}

function ItemUp(mn,strClassName)
	{
	GetDocID('m'+(MenuIndex(mn)).UniqueID).className=strClassName;									// change the class name
	if (menuTimer==null) menuTimer=setTimeout('HideMenu('+(MenuIndex(mn)).ParentMenu.UniqueID+')', 500);
	}

function ItemDn(mn,strClassName)
	{
	var obj=(MenuIndex(mn));
	var ls=lastSelection;
	lastSelection=obj.LevelID;
	clearTimeout(menuTimer);
	menuTimer=null;
	if ((ls!=obj.UniqueID) && (ls!=obj.LevelID) && (ls!=-1))
		{ HideMenu(ls); }
	GetDocID('m'+obj.UniqueID).className=strClassName;				// change the class name
	}

function OpenItem(mn)
	{
	var obj=MenuIndex(mn);
	window.open(obj.url,obj.target);
	}
	
function MenuUp(mn,strClassName)
	{
	GetDocID('m'+(MenuIndex(mn)).UniqueID).className=strClassName;		// change the class name
	if (menuTimer==null) menuTimer=setTimeout('HideMenu('+mn+')', 500);
	}

function MenuDn(mn,strClassName)
	{
	var obj=MenuIndex(mn);
	var ls=lastSelection;
	lastSelection=obj.LevelID;
	clearTimeout(menuTimer);
	menuTimer=null;
	if ((ls!=obj.UniqueID) && (ls!=obj.LevelID) && (ls!=-1))
		{ HideMenu(ls); }
	GetDocID('m'+obj.UniqueID).className=strClassName;		// change the class name
	BuildMenu(obj);
	}

function HideMenu(mn)
	{
	var obj=MenuIndex(mn);
	//alert(lastSelection);
	if (obj)
		{
		var objD=GetDocID('dv'+obj.UniqueID);
		if (objD) objD.style.display='none';
		else 
			{
			objD=GetDocID('dv'+obj.LevelID);
			if (objD) objD.style.display='none';
			}
		if (obj.ParentMenu) 
			{
			if ((lastSelection!=obj.ParentMenu.UniqueID) && (lastSelection!=obj.ParentMenu.LevelID))
				HideMenu(obj.ParentMenu.UniqueID);
			}
		}
	}

function BuildMenu(bm)
	{
	var str;
	var it;
	var x,y;
	var obj;
	
	if (bm.subPtr==null) return;
	if (GetDocID('dv'+bm.UniqueID)!=null) 
		{
		lastSelection=bm.UniqueID;
		GetDocID('dv'+bm.UniqueID).style.display='block';
		return;
		}
	lastSelection=bm.UniqueID;
	obj=GetDocID('m'+bm.UniqueID);
	if (bm.ParentMenu) { x=obj.offsetWidth; y=0; } else { x=0; y=obj.offsetHeight; }
	while (obj)
		{
		x+=obj.offsetLeft;
		y+=obj.offsetTop;
		obj=obj.offsetParent;
		}
	if (_isIE)
		str='<div id="dv' + bm.UniqueID + '" style="position: absolute; left: ' + 
		x+'px; top: ' + y+
		'px; width: ' + bm.subPtr[0].Width + '; visibility: inherit;">';
	else if (_isNS)
		str='<layer id="dv' + bm.UniqueID + '" left=' + 
		x+' top=' + y+
		' width=' + bm.subPtr[0].Width + '>';
	else
		str='<div id="dv' + bm.UniqueID + '" style="position: absolute; left: 0in; top:0in;' + 
			' width: ' + bm.subPtr[0].Width+';visibility: inherit;">';
	for (it=0;it<bm.subPtr.length;it++)
		with (bm.subPtr[it])
		{
		ParentMenu=bm;
		LevelID=bm.UniqueID;
		str+='<table id="m' + UniqueID + '" class="' + CellClass + '"';
		if (Width!="")
			str+=' width="'+Width+'"';
		 else
			str+=' width="100%"';			
		if (subPtr==null)
			str+=' onmouseover="ItemDn('+UniqueID+',\''+OverClass+'\')" onmouseout="ItemUp('+UniqueID+',\''+CellClass+'\')" onclick="OpenItem('+UniqueID+')"';
		else
			str+=' onmouseover="MenuDn('+UniqueID+',\''+OverClass+'\')" onmouseout="MenuUp('+UniqueID+',\''+CellClass+'\')"';
		str+='><tr>';
		if (Icon!='')
			str+='<td><img src="'+Icon+'"/></td>';
		str+='<td>'+Text+'</td><td width="16px" align="right">';
		if (subPtr) 
			str+='<img src="../j-script/arrow.gif"/>';
		str+='</td></tr></table>';
		}
	if (_isDOM || _isIE)
		str+="</div>";
	 else
		str+="</layer>";
	if (_isIE) 
		{
		document.body.insertAdjacentHTML('beforeEnd',str);
		}
	else 
		{
		var newDiv = document.createElement('div');
		newDiv.innerHTML = str;
		ref = newDiv.style;
		ref.position = 'absolute';
		ref.visibility = 'visible';
		ref.top=y+'px';
		ref.left=x+'px';
		document.getElementsByTagName('body').item(0).appendChild(newDiv);
		//alert(str);
		}
	}
