function menuItem(text, link){	
	this.text = text; 
	this.link = link; 
} 

function menuTrigger(name, text, url){ 
	this.name = name; 
	this.text = text; 
	this.url  = url;
} 

function menu(){ 
		 var itemArray = new Array(); 
		 var args = menu.arguments;
		 
		 this.name = args[0]; 
		 this.rowoffset = args[1];
		 this.coloffset = args[2];
		 this.menubarwidth = args[3];
		 this.submenuwidth = args[4];
   		 this.trigger = args[5]; 

  		 for(i=6; i<args.length; i++){ 
		 		itemArray[i-6] = args[i]; 
		 }
		
		 this.menuItems = itemArray; 
		 this.write = writeMenu; 
		 this.position = positionMenu; 
	} 
		 
function writeMenu(iBaseMenuOffset,iMenuOffset){ 
		
		var menuText = '<div id="'; 
		menuText += this.trigger.name; 
		menuText += '" class="trigger" style="top: '; 
		menuText += this.top; 
		menuText += '; left: '; 
		menuText += this.left; 
		menuText += ';"'; 
		
		if (this.menuItems.length < 1)
		{
			menuText += '>';
			menuText += '<table border="0" cellspacing="0" cellpadding="0" width="' + (this.width) + '">'; 
			menuText += '<tr><th>';
			menuText += '<a class="ShowBarMenu" onMouseOut="SetClass(this,' + "'ShowBarMenu'" + ')" onMouseOver="SetClass(this,' + "'OverBarMenu'" + ')"' + ' href=' + this.trigger.url + '>' + this.trigger.text + '</a></th></tr></table></div>'; 
		}
		else
		{
			menuText += 'onMouseOver="showMenu(\''; 
			menuText += this.name; 
			menuText += '\')" onMouseOut="hideMenu(mnuSelected)">'; 
			menuText += '<table border="0" cellspacing="0" cellpadding="0" width="' + (this.width) + '">'; 
			menuText += '<tr><th>' + this.trigger.text + '</th></tr></table></div>'; 
			menuText += '<div id="'; 
			menuText += this.name; 
			menuText += '" class="menu" style="top: '; 
			menuText += (this.top+parseInt(iBaseMenuOffset)+parseInt(iMenuOffset)); 
			menuText += ';left: '; 
			menuText += this.left; 
			menuText += ';" ';
			menuText += 'onMouseOver="showMenu(mnuSelected)" '; 
			menuText += 'onMouseOut="hideMenu(mnuSelected)">'; 
			
			menuText += '<table border="0" cellpadding="0" cellspacing="0" width="' + this.submenu + '">'; 
			
			for(i=0; i<this.menuItems.length; i++){ 
		 		menuText += '<tr>'; 
		 		menuText += '<td class="ShowMenu" onMouseOut="SetClass(this,' + "'ShowMenu'" + ')" onMouseOver="SetClass(this,' + "'OverMenu'" + ')">'; 
		 		menuText += '<a href="' + this.menuItems[i].link + '"> '; 
		 		menuText += this.menuItems[i].text + '</a></td>'; 
		 		menuText += '</tr>'; 
			} 
			 
			menuText += '</table>';
			menuText += '</div>'; 
		}
		
		document.write(menuText); 
		document.close(); 
		} 
		
function positionMenu(top,left,width,submenu){ this.top = top; this.left = left; this.width = width; this.submenu = submenu } 

var mnuSelected = ''; 

function SetClass( oElement, sClassname)
{
	//alert("Setting class for " + oElement.tagName + " Id=" + oElement.id);
	oElement.className = sClassname;
}

function showMenu(menu){ hideMenu(mnuSelected); 
		document.getElementById(menu).style.visibility = 'visible'; mnuSelected = menu; 
		} 
		
function hideMenu(menu){ if(mnuSelected!='') 
		document.getElementById(menu).style.visibility = 'hidden'; 
		} 

// this calculates position for each menu item per browser/version 
function WriteOutMenu(menuele,oBrow,iOffset) {

			var pos = document.getElementById('MenuBar').parentNode;
			var SUBMENU_DROP_OFFSET = iOffset;		// distance from mainbar to draw submenu
			
			
			if (oBrow.IsMicrosoft() == BOOLEAN_TRUE)
			{
				menuele.position(pos.offsetTop + 40 + menuele.rowoffset,pos.offsetLeft + 10 + menuele.coloffset,menuele.menubarwidth,menuele.submenuwidth);
			}
			else
			{
				if ((oBrow.GetMajorVersion() == 6) && (oBrow.GetMinorVersion() < 1))
				{
					SUBMENU_DROP_OFFSET += 1;
					menuele.position(pos.offsetTop + 23 + menuele.rowoffset,pos.offsetLeft + 9 + menuele.coloffset,menuele.menubarwidth,menuele.submenuwidth);
				}
				else
				{
					menuele.position(pos.offsetTop + 15 + menuele.rowoffset,pos.offsetLeft - 1 + menuele.coloffset,menuele.menubarwidth,menuele.submenuwidth);				
				}
			}
			menuele.write(SUBMENU_DROP_OFFSET,0);
}


