var timeOn = null;

var numMenus = 50;

var currentMenuNo = 0;
var menuActive = new Array(numMenus);
var tier = new Array(numMenus);
var borderMod = new Array(numMenus);
var offClass = new Array(numMenus);
var onClass = new Array(numMenus);
var offColours = new Array(numMenus);
var onColours = new Array(numMenus);
var labelBulletName = new Array(numMenus);
var menuType = new Array(numMenus);
var menus = new Array(numMenus);


function bulletPoint(offURL, onURL) {	
	this.offImage = new Image();
	this.offImage.src = offURL;
	this.onImage = new Image();
	this.onImage.src = onURL;
	this.URL = String(offURL);
}

function openMe(newin) {
        flyout=window.open(newin,"flyout","")
}

function borderCell(B) {
	return '<td width="1" bgcolor="' + B + '"><img src="jmages/shim.gif" width="1" height="1" border="0"></td>';
}

function borderRow(B, C) {
	return '<tr><td height="1" colspan="' + C + '" bgcolor="' + B + '"><img src="jmages/shim.gif" width="1" height="1" border="0"></td></tr>';
}

function menuOver() {
	clearTimeout(timeOn);
}

function menuOut() {
	timeOn = setTimeout("hideAllMenus()", 1000);
}


function showMenu(m_No, eventObj) {
	hideAllMenusTier(tier[m_No]-1);
	var borderModSize = borderMod[m_No];
	if (ns4) {
		changeBGColour('menuLabel' + m_No, onColours[m_No]);
	} else {
		changeBGColour('labelCell' + m_No, onColours[m_No]);
		changeClass('menuLink' + m_No, onClass[m_No]);
	}
	if (labelBulletName[m_No] != null){
		changeImage('menuBullet' + m_No, labelBulletName[m_No] + '.onImage');
	}
	menuActive[m_No] = true;
	if (menuType[m_No] != 'blank') {
		if (ns4) labelObj = 'menuLabel'+m_No;
		else labelObj = 'labelCell'+m_No;
		
		x = getElementLeft(labelObj)-borderModSize;
		y = getElementTop(labelObj) + getElementHeight(labelObj);

		if (menus[m_No].align == 'center')  x = x + ((getElementWidth(labelObj)-getElementWidth('menu'+m_No))/2);
		if (menus[m_No].align == 'right') x = x + ((getElementWidth(labelObj)-getElementWidth('menu'+m_No))) + (borderModSize*2);

		moveXY('menu' + m_No, x, y);

		if(changeObjectVisibility('menu' + m_No, 'visible')) return true;
    	else return false;
	}
}

function showMenuSide(m_No, eventObj, myTier) {
	hideAllMenusTier(tier[m_No]-1);
	var borderModSize = borderMod[m_No];
	if (ns4) {
		changeBGColour('menuLabel' + m_No, onColours[m_No]);
	} else {
		changeBGColour('labelCell' + m_No, onColours[m_No]);
		changeClass('menuLink' + m_No, onClass[m_No]);
	}
	if (labelBulletName[m_No] != null) changeImage('menuBullet' + m_No, labelBulletName[m_No] + '.onImage');
	menuActive[m_No] = true;
	if (menuType[m_No] != 'blank') {
		if (ns4) {
			labelObj = 'menuLabel'+m_No;
		} else {
			labelObj = 'labelCell'+m_No;
			if (mac_ie) labelObj = 'labelRow'+m_No;
		}
		x = getElementLeft(labelObj);
		y = getElementTop(labelObj) - borderModSize;

		if (menus[m_No].align=='right') x = x + getElementWidth(labelObj);
		else x = x - getElementWidth('menu'+m_No);

		moveXY('menu' + m_No, x, y);
	
		if(changeObjectVisibility('menu' + m_No, 'visible')) return true;
	    else return false;
	}
}

function hideAllMenus() {
	for (var i = 1; i < (currentMenuNo+1); i++) {
		if(menuActive[i] == true) hideMenu(i);
	}
}

function hideAllMenusTier(myTier) {
	for (var i = 1; i < (currentMenuNo+1); i++) {
		if( tier[i] > myTier && menuActive[i] == true) hideMenu(i);
	}
}

function hideMenu(m_No) {
	if (ns4) {
		changeBGColour('menuLabel' + m_No, offColours[m_No]);
	} else {
		changeBGColour('labelCell' + m_No, offColours[m_No]);
		changeClass('menuLink' + m_No, offClass[m_No]);
	}
	if (labelBulletName[m_No] != null){
		changeImage('menuBullet' + m_No, labelBulletName[m_No] + '.offImage');
	}
	menuActive[m_No] = false;
	
	if(changeObjectVisibility('menu' + m_No, 'hidden'))  return true;
    else return false;

}



function menuBar(barName, barWidth, orientation, i_Bor, o_Bor) {
	this.numLabels = 0;
	this.i_Bor = i_Bor;	
	this.o_Bor = o_Bor;	
	this.height = 15;
	this.orientation = orientation;
	this.labelText = new Array();
	this.rowText = new Array();
	this.offClass = 'MenuLabelLink';
	this.onClass = 'MenuLabelLinkOn';
	this.bulletAlign = 'left';
	this.targetType = 'self'; // self, iframe, frame, new
	this.targetFrame = '_self'; // _self, _blank or (i)frame name
	
	
	this.addLabel = function(bullet, labelText, menuNo, labelWidth, offColour, onColour, labelURL, align) {
		this.numLabels += 1;
		tier[menuNo] = 0;		
		if (this.o_Bor != null) borderMod[menuNo] = 1;	
		else borderMod[menuNo] = 0;	
		if (menuNo != null) {
			onColours[menuNo] = onColour;
			offColours[menuNo] = offColour;
			onClass[menuNo] = this.onClass;
			offClass[menuNo] = this.offClass;
			labelBulletName[menuNo] = bullet;
		}
		
		temp = new String('');
		this.rowText[this.numLabels] = new String('');
		if (this.orientation == 'vertical') this.rowText[this.numLabels] += '<tr id="labelRow'+ menuNo + '">';

		temp += '<td id="labelCell' + menuNo + '" width="'+ labelWidth + '" bgcolor="' + offColour + '" valign="middle" height="' + this.height + '" ';
		
		if (!ns4) {
			temp += ' onmouseout="menuOut(); "onmouseover="menuOver(); ';
			if (this.orientation == 'vertical') temp += 'return !showMenuSide(' + menuNo + ', event, tier[' + menuNo + ']);" ';
			else temp += 'return !showMenu(' + menuNo + ', event);" ';
			if (this.targetType=='self') temp += ' onclick="document.location.href=\'' + labelURL + '\';" ';
			if (this.targetType=='new') temp += ' onclick="openMe(\'' + labelURL + '\'); return false;" ';
			if (this.targetType=='frame') temp += ' onclick="parent.' + this.targetFrame + '.document.location.href=\'' + labelURL + '\';" ';
			if (this.targetType=='iframe') temp += ' onclick="' + this.targetFrame + '.location.href=\'' + labelURL + '\';" ';
		} 		
		temp +='>';
		
		if (ns4) {
			temp +='<ilayer><layer onmouseout="menuOut();" onmouseover="menuOver(); ';
			if (this.orientation == 'vertical') temp +='return !showMenuSide(' + menuNo + ', event, tier[' + menuNo + ']);" ';
			else temp +='return !showMenu(' + menuNo + ', event);" ';
		} else {
			temp +='<div ';
		}
		
		temp += ' class="myMenuLabel' + align + '" width="' + labelWidth + '"  id="menuLabel' + menuNo +'"><a href="' + labelURL +'" target="' + this.targetFrame + '" class="' + this.offClass + '" id="menuLink' + menuNo +'">';
		
		if (bullet != null) temp += '<img src="' + eval(bullet + ".URL") + '" border="0" align="' + this.bulletAlign + '" id="menuBullet' + menuNo + '" name="menuBullet' + menuNo + '">';
			
		temp += labelText + '</a>';
		
		if (ns4) temp += '</layer></ilayer>';
		else temp += '</div>';
		
		temp += '</td>';		
		this.labelText[this.numLabels] = new String(temp);

	}
	
	this.writeMenuBar = function() {
		o_Bor = this.o_Bor;
		i_Bor = this.i_Bor;
		menuBarStr = new String();
		menuBarStr += '<div id="' + barName + '"><table border="0" cellpadding="0" cellspacing="0">';
		if (this.orientation == 'vertical') {
			if (o_Bor != null) menuBarStr += borderRow(o_Bor, 3);
			for (var count = 0; count < this.numLabels; count++) {		
				menuBarStr += this.rowText[count+1];
				if (o_Bor != null) menuBarStr += borderCell(o_Bor);
				menuBarStr += this.labelText[count+1];
				if (o_Bor != null) menuBarStr += borderCell(o_Bor);				
				menuBarStr += '</tr>';
				if (i_Bor != null && count < (this.numLabels-1)) {
					if (o_Bor != null) menuBarStr += '<tr>' + borderCell(o_Bor) + borderCell(i_Bor) + borderCell(o_Bor) + '</tr>';
					else menuBarStr += borderRow(i_Bor, 1);
				}
			}
			if (o_Bor != null) menuBarStr += borderRow(o_Bor, 3);
		} else {
			if (o_Bor != null) {
				if (i_Bor != null) menuBarStr += borderRow(o_Bor, ((this.numLabels*2)+1));
				else menuBarStr += borderRow(o_Bor, (this.numLabels+2));
			}
			menuBarStr += '<tr>';
			if (o_Bor != null) menuBarStr += borderCell(o_Bor); 
			for (var count = 0; count < this.numLabels; count++) {		
				menuBarStr += this.rowText[count+1];			
				menuBarStr += this.labelText[count+1];
				if (i_Bor != null && count < (this.numLabels-1)) {
					menuBarStr += borderCell(i_Bor);
				}
			}
			if (o_Bor != null) {
				menuBarStr += borderCell(o_Bor);
				if (i_Bor != null) menuBarStr += borderRow(o_Bor, ((this.numLabels*2)+1));
				else menuBarStr += borderRow(o_Bor, (this.numLabels+2)); 
			}
			menuBarStr +=  '</tr>';
		}
		menuBarStr += '</table></div>';
		document.write(menuBarStr);
	}
}


function menu(menuWidth, orientation, i_Bor, o_Bor) {
	currentMenuNo += 1;
	this.numItems = 0;
	this.i_Bor = i_Bor;	
	this.o_Bor = o_Bor;	
	this.height = 15;
	this.itemText = new Array();
	this.rowText = new Array();
	this.align = 'left';
	this.offClass = 'MenuItemLink';
	this.onClass = 'MenuItemLinkOn';
	this.orientation = orientation;
	this.bulletAlign = 'left';
	this.targetType = 'self'; // self, iframe, frame, new
	this.targetFrame = '_self'; // _self, _blank or (i)frame name

	this.addItem = function(bullet, itemText, menuNo, itemWidth, offColour, onColour, itemURL, align) {
		this.numItems += 1;
		
		var tempId = currentMenuNo + '_' + this.numItems;
	
		if (menuNo != null) {
			tier[menuNo] = tier[currentMenuNo] + 1;
			onColours[menuNo] = onColour;
			offColours[menuNo] = offColour;
			onClass[menuNo] = this.onClass;
			offClass[menuNo] = this.offClass;
			labelBulletName[menuNo] = bullet;
			if (this.o_Bor != null) borderMod[menuNo] = 1;	
			else borderMod[menuNo] = 0;	
		}
		
		temp = new String('');
		this.rowText[this.numItems] = new String('');
		
		if (menuNo != null) {
			if (this.orientation =='vertical') this.rowText[this.numItems] += '<tr id="labelRow'+ menuNo + '">';
			temp += '<td id="labelCell'+ menuNo + '" width="'+ itemWidth + '" bgcolor="' + offColour + '" valign="middle" height="' + this.height + '" ';
		} else {
			if (this.orientation =='vertical') this.rowText[this.numItems] += '<tr>';
			temp += '<td id="itemCell' + tempId + '" width="'+ itemWidth + '" bgcolor="' + offColour + '" valign="middle" height="' + this.height + '" class="' + align + 'Menu"';
		}		
		if (!ns4) {
			if (this.targetType=='self') temp += ' onclick="document.location.href=\'' + itemURL + '\';" ';
			if (this.targetType=='new') temp += ' onclick="openMe(\'' + itemURL + '\'); return false;" ';
			if (this.targetType=='frame') temp += ' onclick="parent.' + this.targetFrame + '.document.location.href=\'' + itemURL + '\';" ';
			if (this.targetType=='iframe') temp += ' onclick="' + this.targetFrame + '.location.href=\'' + itemURL + '\';" ';
			if (menuNo != null) {			
				if (this.orientation =='vertical') temp += ' onmouseover="menuOver(); return !showMenuSide(' + menuNo + ', event, tier[' + menuNo + ']); " onmouseout=" menuOut(); "';
				else temp += ' onmouseover="menuOver(); return !showMenu(' + menuNo + ', event); " onmouseout=" menuOut(); "';
			} else {
				temp += ' onmouseover="changeClass(\'menuLink' + tempId + '\',\'' + this.onClass + '\'); hideAllMenusTier(tier[' + currentMenuNo + ']); menuOver();  changeBGColour(\'itemCell' + tempId + '\', \'' + onColour + '\'); changeImage(\'menuItemBullet' + tempId + '\', \'' + bullet + '.onImage\'); " onmouseout="menuOut(); changeClass(\'menuLink' + tempId + '\',\'' + this.offClass + '\'); changeBGColour(\'itemCell' + tempId + '\', \'' + offColour + '\'); changeImage(\'menuItemBullet' + tempId + '\', \'' + bullet + '.offImage\'); "';
			}
		} 
		temp += '>';
				
		if (ns4) {
			temp += '<ilayer><layer ';
			if(menuNo != null) { 
				if (this.orientation == 'vertical') temp += 'onmouseover="menuOver(); return !showMenuSide(' + menuNo + ', event, tier[' + menuNo + ']);" onmouseout="menuOut();"';
				else temp += 'onmouseover="menuOver(); return !showMenu(' + menuNo + ', event);" onmouseout="menuOut();"';
			} else {
				temp += 'onmouseover="hideAllMenusTier(tier[' + currentMenuNo + ']); menuOver(); changeBGColour(\'menuItem' + tempId + '\', \'' + onColour + '\'); changeImage(\'menuItemBullet' + tempId + '\', \'' + bullet + '.onImage\'); " onmouseout="menuOut(); changeBGColour(\'menuItem' + tempId + '\', \'' + offColour + '\'); changeImage(\'menuItemBullet' + tempId + '\', \'' + bullet + '.offImage\'); "';
			}
		} else {
			temp +='<div ';
		}
		temp += ' class="myMenuItem' + align + '" width="' + itemWidth + '"';
	
		if (menuNo != null) temp += ' id="menuLabel' + menuNo +'"';
		else temp += ' id="menuItem' + tempId +'"';
		
		temp += '><a href="' + itemURL +'" target="' + this.targetFrame + '" class="' + this.offClass + '"';
		if (menuNo != null) temp += 'id="menuLink' + menuNo +'"';
		else temp += 'id="menuLink' + tempId +'"';
		temp +='>';
		
		if (bullet != null) {
			if (menuNo != null) temp += '<img src="' + eval(bullet + ".URL") + '" border="0" align="' + this.bulletAlign + '" id="menuBullet' + menuNo + '" name="menuBullet' + menuNo + '">';
			else temp += '<img src="' + eval(bullet + ".URL") + '" border="0" align="' + this.bulletAlign + '" id="menuItemBullet' + tempId + '" name="menuItemBullet' + tempId + '">';
		}
			
		temp += itemText + '</a>';
		
		if (ns4) temp += '</layer></ilayer>';
		else temp += '</div>';

		temp += '</td>';	
		this.itemText[this.numItems] = new String(temp);
	}
	
	this.writeMenu = function() {
		var menuStr = new String();
		o_Bor = this.o_Bor;
		i_Bor = this.i_Bor;
		if (this.numItems == 0) menuType[currentMenuNo] = 'blank';
		else menuType[currentMenuNo] = 'default';
		menuStr += '<div id="menu' + currentMenuNo + '" name="menu' + currentMenuNo + '" class="myMenu" width="' + menuWidth + '"';
		if (!ns4) menuStr += ' style="width:' + menuWidth + ';"';
		menuStr+= '><table border="0" cellpadding="0" cellspacing="0" width="' + menuWidth + '">';
		if (this.orientation == 'vertical') {
			if (o_Bor != null) menuStr += borderRow(this.o_Bor, 3);
			for (var count = 0; count < this.numItems; count++) {
				menuStr += this.rowText[count+1];
				if (o_Bor != null) menuStr += borderCell(o_Bor);
				menuStr += this.itemText[count+1];
				if (o_Bor != null) menuStr += borderCell(o_Bor);
				menuStr += '</tr>';
				if (i_Bor != null && count < (this.numItems-1)) {
					if (o_Bor != null) menuStr += '<tr>' + borderCell(o_Bor) + borderCell(i_Bor) + borderCell(o_Bor) + '</tr>';
					else menuStr += borderRow(i_Bor, 1);
				}
			}
			if (o_Bor != null) menuStr += borderRow(o_Bor, 3);
		} else {
			if (o_Bor != null) {
				if (i_Bor != null) menuStr += borderRow(o_Bor, ((this.numItems*2)+1));
				else menuStr += borderRow(o_Bor, (this.numItems+2));
			}
			menuStr += '<tr>';
			if (o_Bor != null) menuStr += borderCell(o_Bor); 
			for (var count = 0; count < this.numItems; count++) {		
				menuStr += this.rowText[count+1];			
				menuStr += this.itemText[count+1];
				if (i_Bor != null && count < (this.numItems-1)) {
					menuStr += borderCell(i_Bor);
				}
			}
			if (o_Bor != null) {
				menuStr += borderCell(o_Bor);
				if (i_Bor != null) menuStr += borderRow(o_Bor, ((this.numItems*2)+1));
				else menuStr += borderRow(o_Bor, (this.numItems+2)); 
			}
			menuStr +=  '</tr>';
		}
		menuStr += '</table></div>';
		document.write(menuStr);
	}
}

//----------

	menuItemBullet = new bulletPoint("/bullets/one/menu_off.gif","/bullets/one/menu_on.gif");
	labelBullet = new bulletPoint("/bullets/one/header_off.gif","/bullets/one/header_on.gif");
	subMenuBullet = new bulletPoint("/bullets/one/sub_header_off.gif","/bullets/one/sub_header_on.gif");

	TMENU = new menuBar('TMENU', 100, 'vertical', '#000000', '#000000');
	TMENU.addLabel('menuItemBullet', 'Home', 1, 90, '#387c44', '#8afb17', 'http://www.trainmro.org/homepage.html', 'left'); 
	TMENU.addLabel('labelBullet', 'About Us', 2, 90, '#387c44', '#8afb17', '/aboutus.html', 'left');
	TMENU.addLabel('labelBullet', 'Join Us', 3, 90, '#387c44', '#8afb17', '/joinus.html', 'left');
	TMENU.addLabel('labelBullet', 'Business Sponsors', 4, 140, '#387c44', '#8afb17', '/bsponsors.html', 'left');
	TMENU.addLabel('menuItemBullet', 'Contact Us', 5, 90, '#387c44', '#8afb17', '/contactus.html', 'left');
	TMENU.height = 14;

	menus[1] = new menu(125, 'vertical', '#000000', '#000000');
	menus[1].height = 16;
	menus[1].writeMenu();

	menus[2] = new menu(135, 'vertical', '#000000', '#000000');
	menus[2].height = 16;
	menus[2].addItem('menuItemBullet', 'Our Charter', null, 135, '#387c44', '#8afb17', '/ourcharter.html', 'left');
	menus[2].addItem('menuItemBullet', 'What we do', null, 135, '#387c44', '#8afb17', '/whatwedo.html', 'left');
	menus[2].addItem('menuItemBullet', 'Our Directors', null, 135, '#387c44', '#8afb17', '/ourdirectors.html', 'left');
	// menus[2].addItem('menuItemBullet', 'Recruitment', null, 135, '#387c44', '#8afb17', 'test3.asp', 'left');
	menus[2].writeMenu();

	menus[3] = new menu(135, 'vertical', '#000000', '#000000');
	menus[3].height = 16;
	menus[3].addItem('menuItemBullet', 'Printable Version', null, 135, '#387c44', '#8afb17', '/joinus.html', 'left');
	menus[3].addItem('menuItemBullet', 'Online Application', null, 135, '#387c44', '#8afb17', '/onlineapp.html', 'left');
	// menus[3].addItem('menuItemBullet', 'Recruitment', null, 135, '#387c44', '#8afb17', 'test3.asp', 'left');
	menus[3].writeMenu();

	menus[4] = new menu(135, 'vertical', '#000000', '#000000');
	menus[4].height = 16;
	menus[4].addItem('menuItemBullet', 'Road Wheeler Magazine', null, 135, '#387c44', '#8afb17', 'http://www.roadwheeler.com/', 'left');
	menus[4].addItem('menuItemBullet', 'Biker Betty Boop', null, 135, '#387c44', '#8afb17', 'http://www.bikerbettyboop.com', 'left');
	menus[4].addItem('menuItemBullet', 'Free Cincinnati Area Online Trading Post', null, 135, '#387c44', '#8afb17', 'http://groups.yahoo.com/group/Cincinnati_TradingPost/', 'left');
	menus[4].addItem('menuItemBullet', 'Sons of Liberty Riders', null, 135, '#387c44', '#8afb17', 'http://www.bikers4row.org', 'left');
	menus[4].addItem('menuItemBullet', 'Jenn\'s Bar & Grill', null, 135, '#387c44', '#8afb17', 'http://maps.google.com/maps?f=q&hl=en&geocode=&q=jenn\'s+bar+and+grill+near+fairfield,+oh&sll=39.434072,-84.14978&sspn=0.118795,0.169945&ie=UTF8&ll=39.461644,-84.478683&spn=0.237496,0.33989&z=11&iwloc=A', 'left');
	menus[4].addItem('menuItemBullet', 'Charlie\'s Throttle Stop', null, 135, '#387c44', '#8afb17', 'http://www.charliesthrottlestop.com', 'left');
	menus[4].addItem('menuItemBullet', 'Buffalo Wings & Rings (Fairfield)', null, 135, '#387c44', '#8afb17', 'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=5486+Dixie+Hwy,+fairfield,+oh&sll=39.326028,-84.508554&sspn=0.120572,0.182304&ie=UTF8&hq=&hnear=5486+Dixie+Hwy,+Fairfield,+Butler,+Ohio+45014&ll=39.334104,-84.524037&spn=0.000942,0.001424&t=h&z=19&iwloc=A', 'left');
	menus[4].addItem('menuItemBullet', 'Country Kitchen', null, 135, '#387c44', '#8afb17', 'http://maps.google.com/maps?f=q&hl=en&geocode=&q=country+kitchen+in+lebanon,+oh&sll=39.387917,-84.214668&sspn=0.029718,0.042486&ie=UTF8&ll=39.434072,-84.14978&spn=0.118795,0.169945&z=12&iwloc=A', 'left');
	menus[4].addItem('menuItemBullet', 'LDR Interactive Technologies', null, 135, '#387c44', '#8afb17', 'http://www.ldrit.com', 'left');
	// menus[4].addItem('menuItemBullet', 'News Feeds', null, 135, '#387c44', '#8afb17', 'examples/newsfeeds.html', 'left');
	menus[4].writeMenu();

	menus[5] = new menu(125, 'vertical', '#000000', '#000000');
	menus[5].height = 16;
	// menus[5].addItem('menuItemBullet', '(a blog and forum)', null, 125, '#387c44', '#8afb17', 'forum.html', 'left');
	// menus[5].addItem('menuItemBullet', 'Consultancy', null, 125, '#387c44', '#8afb17', 'test2.asp', 'left');
	// menus[5].addItem('menuItemBullet', 'Installation', null, 125, '#387c44', '#8afb17', 'test3.asp', 'left');
	menus[5].writeMenu();

	menus[1].align='right';
	menus[2].align='right';
	menus[3].align='right';
	menus[4].align='right';
	menus[5].align='right';
	// menus[6].align='right';
	// menus[7].align='right';
	// menus[8].align='right';
	// menus[9].align='right';
