// FG Menu
// ver. 1.2 - 16.3.2004

function fgMenu(numBlocks,objName,prefix,roll,roll2) {
	this.numBlocks = numBlocks;
	this.objName = objName;
	this.mnuPrefix = prefix+"Menu";
	this.lyrPrefix = prefix+"Layer";
	this.divPrefix = prefix+"Div";
	this.classPrefix = prefix;
	this.roll = roll;
	this.roll2 = roll2;
	this.delay = 100;
	this.z_index = 50;
	this.lastMenuID = 0;
	this.timerID;
	this.load = false;
	
	this.initMenu = initMenu;
	this.buildMenu = buildMenu;
	this.menuOn = menuOn;
	this.menuOff = menuOff;
	this.showMenu = showMenu;
	this.hideMenu = hideMenu;
	this.timeoutMenu = timeoutMenu;
	this.clearTimeoutMenu = clearTimeoutMenu;
	this.toggleColor = toggleColor;
	this.clickURL = clickURL;
}
function initMenu() {
	for (var i=1; i<=this.numBlocks; i++) {
		var a = eval(this.mnuPrefix+i);
		if (a.length > 0) { eval(this.lyrPrefix+i+" = new DynLayer('"+this.divPrefix+i+"')"); }
	}
	this.load = true;
}
function buildMenu() {
	// this.css
	this.css = css(this.divPrefix,null,null,null,null,null,null,this.z_index,"text-align:left");
	for (var i=1; i<=this.numBlocks; i++) {
		var a = eval(this.mnuPrefix+i);
		if (a.length > 0) { this.css += css(this.divPrefix+i,a[0][0],a[0][1],a[0][2],null,null,"hidden"); }
	}
	// this.html
	this.html = '<div id="'+this.divPrefix+'">\n';
	for (var i=1; i<=this.numBlocks; i++) {
		var a = eval(this.mnuPrefix+i);
		if (a.length > 0) {
			this.html += '<div id="'+this.divPrefix+i+'" class="'+this.classPrefix+'Menu-1" onMouseOver="'+this.objName+'.clearTimeoutMenu()'+((this.roll)? '; '+this.roll+'.Click('+i+')' : '')+((this.roll2)? '; '+this.roll2+'.Click('+i+')' : '')+'" onMouseOut="'+this.objName+'.timeoutMenu('+i+')">\n';
			for (var x=1; x<a.length; x++) { this.html += '<div id="'+this.divPrefix+i+x+'" class="'+this.classPrefix+'Item-1" onMouseOver="'+this.objName+'.toggleColor(this); return ws(\''+a[x][0]+'\')" onMouseOut="'+this.objName+'.toggleColor(this); return ws(\'\')" onClick="clickURL(\''+a[x][1]+'\')">'+a[x][0]+'</div>\n'; }
			this.html += '</div>\n';
		}
	}
	this.html += '</div>\n';
}
function menuOn(id) {
	if (this.roll) { eval(this.roll+".Mouse(id,'ovr')"); }
	if (this.roll2) { eval(this.roll2+".Mouse(id,'ovr')"); }
	this.showMenu(id);
}
function menuOff(id) {
	if (this.roll) { eval(this.roll+".Mouse(id)"); }
	if (this.roll2) { eval(this.roll2+".Mouse(id)"); }
	this.timeoutMenu(id);
}
function showMenu(id) {
	if ( document.getElementById(this.divPrefix+id) == null ) return;
	if (!this.load) { return; }
	if (is.ns4) { return; }
	this.clearTimeoutMenu();
	if (this.lastMenuID > 0 && this.lastMenuID != id) { this.hideMenu(this.lastMenuID); }
	eval(this.lyrPrefix+id+".show()");
	this.lastMenuID = id;
}
function hideMenu(id) {
	if ( document.getElementById(this.divPrefix+id) == null ) return;
	if (!this.load) { return; }
	if (is.ns4) { return; }
	this.clearTimeoutMenu();
	if (this.lastMenuID > 0) {
		if (this.roll) { eval(this.roll+".Click(0)"); }
		if (this.roll2) { eval(this.roll2+".Click(0)"); }
		eval(this.lyrPrefix+id+".hide()");
	}
}
function timeoutMenu(id) {
	this.timerID = setTimeout(this.objName+".hideMenu("+id+")",this.delay);
}
function clearTimeoutMenu() {
	if (this.timerID) { clearTimeout(this.timerID); }
}
function toggleColor(obj) {
	this.clearTimeoutMenu();
	if (!document.getElementById) { return; }
	if (obj.className == this.classPrefix+"Item-1") { obj.className = this.classPrefix+"Item-1ovr"; }
	else { obj.className = this.classPrefix+"Item-1"; }
}
function clickURL(src) {
	document.location.href = src;
}
function writeMenu(str,showAlert) {
	document.write(str);
	if (showAlert) alert(str);
}
