

function mi_toggle(li)
{ }

function Menuitem(menu, li_class, a_class)
{
	this.menu = menu;
	
	this.hasChilds=function()
	{
		return typeof(menu['c'][0])!== 'undefined';
	}

	this.generateHtml = function()
	{
		// the list
		var li = document.createElement ('li');
		this.li = li;
		li.className = li_class;
		// the a
		var a = document.createElement ('a');
		a.menu = this;
		a.title	= menu['n'];
		a.id = 'menu_'+menu['i'];
		a.innerHTML = menu['n'];
		a.className	= a_class;
		this.a = a;
		li.appendChild(a);
		// create child
		var child_list = document.createElement ('ul');
		child_list.style.display = 'none';
		this.child_list = child_list;
		if (this.hasChilds()) {
			// has childs
			for (i in menu['c']) {
				var child = menu['c'][i];
				if (typeof (child) == 'object') {
					var ins = new Menuitem (child, 'menuSubLevelClosed', '');
					child_list.appendChild (ins.generateHtml());
				}
			}
		}
		li.appendChild(child_list);

		a.expandMenu = function()
		{
			this.menu.child_list.style.display='block';
			if (this.menu.hasChilds()) {
				if (this.className=='menuSubLevelOpen') {
					this.className='menuSubLevelOpen';
				}
			}
			// expand parent
			global_menu.expandMenu(this.menu.menu['p'], true);
		}
		
		a.collapseMenu = function() {
			this.menu.child_list.style.display='none';
			if (this.menu.hasChilds()) {
				if (this.className == 'menuSubLevelClosed') {
					this.className='menuSubLevelOpen';
				}
			}
		}
		a.toggleMenu=function() {
			if (this.menu.child_list.style.display=='none') {
				this.expandMenu();
			} else {
				this.collapseMenu();
			}
		}
		a.onclick=function()
		{
			req = new Ajax.Request ();
			if (this.menu.menu.ht || this.menu.menu.ha) {
				return;
			}
			if (this.menu.child_list.style.display=='block') {
				req.initialize (absUrl ("object_id=category&action=collapse_menu&params[category_id]="+menu['i']), {method:'get'});
			} else {
				req.initialize(absUrl ("object_id=category&action=expand_menu&params[category_id]="+menu['i']), {method:'get'});
			}
			this.toggleMenu(false);
		}
		a.href = menu['u'];
		return li;
	}
}

function Menu(items)
{
	this.selected_menu = 1;
	this.items = items;
	this.generateHtml = function() {
		// the list
		var ul = document.createElement('ul');
		ul.id='1';
		for (i in this.items['c']) {
			var child = this.items['c'][i];
			// ignore functions
			if (typeof (child)=='object') {
				var ins = new Menuitem(child, 'menuTopLevel', 'topLevelLink');
				ul.appendChild (ins.generateHtml());
			}
		}
		var menuDiv = document.getElementById ('menuSection');
		menuDiv.appendChild (ul);
	}

	this.expandMenu = function(menu_id) {
		if (menu_id==1) { return; }
		var a_item = document.getElementById('menu_'+menu_id);
		a_item.expandMenu();
	}
	this.setSelectedMenu = function(menu_id) {
	}
}

