/**
 * DHTML CSS-based XHTML-compatible menu system
 * --
 * james@infinityprosports.com
 * 10/25/2005
 *
 */

var dhtml_timeout = '';

function DHTMLMenu(menuName, classWrapper, classItem, classHover) {
	
	// Functions
	this.addItem = DHTMLMenu_addItem;
	this.showMenu = DHTMLMenu_showMenu;
	this.writeMenu = DHTMLMenu_writeMenu;
	this.closeMenu = DHTMLMenu_closeMenu;
	this.startTimeout = DHTMLMenu_startTimeout;
	
	// Variables
	this.id = menuName;
	this.classWrapper = classWrapper; // CSS class for menu
	this.classItem = classItem; // CSS class for item
	this.classHover = classHover; // CSS class on item-hover
	this.items = new Array();
	this.active = '';
	this.enableTimeout = 0;
	this.activeTimeout = '';
	
}

// Start  timeout
function DHTMLMenu_startTimeout(timer, force) {
	dhtml_timeout = setTimeout('DHTMLMenu_closeMenu("' + force + '");', timer);
}

// Close the menu
function DHTMLMenu_closeMenu(force) {
	if (window.ActiveMenu && (force || window.ActiveMenu.enableTimeout)) {
		m = document.getElementById('dhtmlMenu' + window.ActiveMenu.id);
		m.style.visibility = 'hidden';
		window.ActiveMenu.enableTimeout = 0;
	}
}

// Add a menu item
function DHTMLMenu_addItem(id, parent, html, action) {
	this.items.push(new Array(id, parent, html, action));
}
	
// Show the menu
function DHTMLMenu_showMenu(x, y) {
	if (window.ActiveMenu) {
		DHTMLMenu_closeMenu(1);
	}
	m = document.getElementById('dhtmlMenu' + this.id);
	if (m) {
		m.style.left = x + 'px';
		m.style.top = y + 'px';
		m.style.visibility = 'visible';
		window.ActiveMenu = this;
		window.ActiveMenu.enableTimeout = 1;
		window.clearTimeout(dhtml_timeout); // Delete any active timeouts
	}
}

// Write the menu
function DHTMLMenu_writeMenu() {
	html = '<div style="visibility: hidden; position: absolute; top: 0px; left: 0px;" id="dhtmlMenu' + this.id + '" class="' + this.classWrapper + '">';
	for (i = 0; i < this.items.length; i += 1) {
		itm = this.items[i];
		html += '<div style="display: block" ' + 
			' onmouseover="DHTMLMenu_mouseOver(this, \'' + this.classHover + '\', \'' + this.classItem + '\');" ' +
			' onmouseout="DHTMLMenu_mouseOut(this);" ' + //onclick="' + itm[3] + '" ' + 
			' id="dhtmlMenu' + this.id + 'Item' + itm[0] + '" class="' + this.classItem + '"><a href="#" ' + 
			' style="display: block; width: 100%;" ' + 
			' onclick="' + itm[3] + '">' + itm[2] + '</a></div>';
	}
	html += '</div>';
	document.write(html);
}

// Mouse over
function DHTMLMenu_mouseOver(elem, classHover, classItem) {
	elem.className = classHover;
	if (window.active && window.active != elem) {
		window.active.className = classItem;
	}
	window.active = elem;
	window.clearTimeout(dhtml_timeout); // Delete any active timeouts	
	window.ActiveMenu.enableTimeout = 0; // If they hovered, disable timeouts for a while
}

// Mouse out
function DHTMLMenu_mouseOut(elem) {
	DHTMLMenu_startTimeout(1000);
	window.ActiveMenu.enableTimeout = 1;
}