// Create left-side menus

function string_quote_1(str) {
	return "'" + str + "'";
}

function string_quote_2(str) {
	return '"' + str + '"';
}

function getStyleObject(objectId) {
  // checkW3C DOM, then MSIE 4, then NN 4.
  //
  if(document.getElementById && document.getElementById(objectId)) {
	return document.getElementById(objectId).style;
   }
   else if (document.all && document.all(objectId)) {  
	return document.all(objectId).style;
   } 
   else if (document.layers && document.layers[objectId]) { 
	return document.layers[objectId];
   } else {
	return false;
   }
}

function moveto(objname,x,y)
{
	var s = getStyleObject(objname);
	
	if(document.layers) {
		s.left = parseInt(x);
		s.top = parseInt(y);
	}
	else {
		s.left = parseInt(x) + "px";
		s.top = parseInt(y) + "px";
	}
}

function show(n) {
	var o = MM_findObj(n);
	o.style.visibility = 'visible';
}

function hide(n) {
	var o = MM_findObj(n);
	o.style.visibility = 'hidden';
}

// Individual menu items
function MenuItem(id,url,base_image,over_image) {
	this.id = id;
	this.url = url;
	this.base_image = base_image;
	this.over_image = over_image;
	this.write = MenuItem_write;
}

function MenuItem_write(id) {
	content = "";
	
	content += '<div class=' + string_quote_2("innermenuitem") + '>';

	if(id == this.id) {
		content += '<img src=' + string_quote_2(this.over_image)
			+ ' id=' + string_quote_2(this.id)
			+ '>';
	}
	else {
		content	+= '<a href=' + string_quote_2(this.url) + '>';
	
		onMouseOver = "MM_swapImage(" + string_quote_1(this.id) + ",''," + string_quote_1(this.over_image) + ",1);";
		onMouseOut = "MM_swapImgRestore();";
	
		content += '<img src=' + string_quote_2(this.base_image)
			+ ' id=' + string_quote_2(this.id)
			+ ' onMouseOver=' + string_quote_2(onMouseOver)
			+ ' onMouseOut=' + string_quote_2(onMouseOut)
			+ '>';
		content += '</a>';
	}
	
	content += '</div>';
	
	return content;
}

// SubMenus
function SubMenu(id,base_image,over_image,popupid,x,y) {
	this.id = id;
	this.base_image = base_image;
	this.over_image = over_image;
	
	this.popupid = popupid;
	this.x = x;
	this.y = y;
	this.timer = 0;
	this.items = new Array();
	this.add = SubMenu_add;
	this.write = SubMenu_write;
	this.writePopup = SubMenu_writePopup;
	this.show = SubMenu_show;
	this.hide = SubMenu_hide;
	this.cancel_hide = SubMenu_cancelHide;
}

function SubMenu_add(obj) {
	this.items[this.items.length] = obj;
}

function SubMenu_write(id) {
	content = "";
	
	content += '<div class=' + string_quote_2("innermenuitem") + '>';
	
	onMouseOver = "MM_swapImage(" + string_quote_1(this.id) + ",''," + string_quote_1(this.over_image) + ",1);"
					+ this.popupid + ".show();";
	onMouseOut = "MM_swapImgRestore();"
					+ this.popupid + ".hide();";
	
	content += '<img src=' + string_quote_2(this.base_image)
		+ ' id=' + string_quote_2(this.id)
		+ ' onMouseOver=' + string_quote_2(onMouseOver)
		+ ' onMouseOut=' + string_quote_2(onMouseOut)
		+ '>';

	content += '</div>';
	
	return content;
}

function SubMenu_writePopup(id) {
	content = "";
	
	content += '<div id=' + string_quote_2(this.popupid) 
		+ ' class=' + string_quote_2("submenu")
		+ ' onMouseOver=' + string_quote_2(this.popupid + ".cancel_hide();")
		+ ' onMouseOut=' + string_quote_2(this.popupid + ".hide();")
		+ '>';
	
	for(var i = 0;i < this.items.length;i++) {
		var it = this.items[i];
		content += it.write(id);
	}
	
	content += '</div>';
	
	return content;
}

function SubMenu_show()
{	
	if(this.timer != 0) {
		window.clearTimeout(this.timer);
		this.timer = 0;
	}
	
	// Calculate where the menu should go
	var obj = MM_findObj('container');
	var x = obj.offsetLeft;
	moveto(this.popupid,x + this.x,this.y);

	show(this.popupid);
}

function SubMenu_hide()
{
	this.timer = window.setTimeout("hide(\"" + this.popupid + "\");",100); 
}

function SubMenu_cancelHide()
{
	if(this.timer != 0) {
		window.clearTimeout(this.timer);
		this.timer = 0;
	}
}

function Menu(id) {
	this.id = id;
	this.items = new Array();
	this.add = Menu_add;
	this.write = Menu_write;
	this.writePopups = Menu_writePopups;
}

function Menu_add(obj) {
	this.items[this.items.length] = obj;
}

function Menu_write(id) {
	content = "";
	
	content += '<div id=\"' + this.id + '\">';
	
	//content += '<div class="foomenu">';
	
	for(var i = 0;i < this.items.length;i++) {
		var it = this.items[i];
		content += it.write(id);
	}
	
	content += '</div>';
	
	document.writeln(content);
}

function Menu_writePopups(id) {
	content = "";
	
	for(var i = 0;i < this.items.length;i++) {
		var it = this.items[i];
		
		if(it.constructor == SubMenu) {
			content += it.writePopup(id);
		}
	}
		
	document.writeln(content);
}
