/**
 * DHTML CSS-based XHTML-compatible menu system
 * --
 * Written by james@infinityprosports.com
 * 10/25/2005
 * Modified by jasonm@infinityprosports.com
 * 12/2009
 *
 */

var dhtml_timeout = '';

function DHTMLMenu(menuName, classWrapper, classItem, classHover) {
	// Functions
	this.addItem = DHTMLMenu_addItem;
	this.writeMenu = DHTMLMenu_writeMenu;
	this.showMenu = DHTMLMenu_showMenu;
	this.closeMenu = DHTMLMenu_closeMenu;
	this.startTimeout = DHTMLMenu_startTimeout;
	
	// Variables
	this.id = menuName;
	this.menuType = menuName.substr(0,4);
	this.classWrapper = (classWrapper !== undefined) ? classWrapper : this.menuType+'_wrapper';	// CSS class for menu
	this.classItem = (classItem !== undefined) ? classItem : this.menuType+'_item';				// CSS class for item
	this.classHover = (classHover !== undefined) ? classHover : this.menuType+'_item_hover';		// CSS class on item hover
	this.items = new Array();
	this.active = '';
	this.enableTimeout = 0;
	this.activeTimeout = '';
}

// Add a menu item
function DHTMLMenu_addItem(id, parent, html, url, target) {
	this.items.push(new Array(id, parent, html, url, target));
}

// Write the menu
function DHTMLMenu_writeMenu() {
	html = '<div id="' + this.id + '" class="' + this.classWrapper + '" style="display: none; position: absolute;">';
	for (i = 0; i < this.items.length; i++) {
		itm = this.items[i];
		tgt = (itm[4] == 'new') ? ' target="' + itm[4] + '"' : '';
		html +=	'<a id="' + this.id + '_item' + itm[0] + '" class="' + this.classItem + '" style="display: block" ' +
				'onmouseover="DHTMLMenu_mouseOver(this, \'' + this.classHover + '\', \'' + this.classItem + '\');" ' +
				'onmouseout="DHTMLMenu_mouseOut(this);" ' +
				'href="' + itm[3] + '"' + tgt +
				'>' + itm[2] + '</a>';
	}
	html += '</div>\n';
	document.write(html);
}
	
// Show the menu
function DHTMLMenu_showMenu(x, y) {
	if (window.ActiveMenu) {
		DHTMLMenu_closeMenu(1);
	}
	var menu_to_open = document.getElementById(this.id);
	if (menu_to_open) {
		menu_to_open.style.left = x + 'px';
		menu_to_open.style.top = y + 'px';
		menu_to_open.style.display = 'block';
		window.ActiveMenu = this;
		window.ActiveMenu.enableTimeout = 1;
		window.clearTimeout(dhtml_timeout);		// Clear any active timeouts
	}
}

// Close the menu
function DHTMLMenu_closeMenu(force) {
	if (window.ActiveMenu && (force || window.ActiveMenu.enableTimeout)) {
		var menu_to_close = document.getElementById(window.ActiveMenu.id);
		menu_to_close.style.display = 'none';
		window.ActiveMenu.enableTimeout = 0;
	}
}

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

// 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);		// Clear any active timeouts
	window.ActiveMenu.enableTimeout = 0;	// Disable timeouts until mouseout
}

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


