function menu() {
	
	var current_item;
	var current_subitem;
	var current_rightitem;
	var current_pageitem;
	var items = new Array();
	
	this.addItem = function(response) {
		if (typeof(response.id) == 'number') {
			items[items.length] = response;
			if (response.parent != 0) {
				this.getItem(response.parent).addItem(response);
			}			
		}		
	}
	
	this.selectItem = function(id,bookmark) {
		var item = this.getItem(id);
		var level = 1;
		var parentitem = item;
		while (parentitem.parent != 0) {
			level++;
			parentitem = menu.getItem(parentitem.parent);
		}
		if (item.parent != 0) {
			if (level == 2) {
				if (current_subitem != null) {
					current_subitem.unselect();
				}
				item.select(level,bookmark);
				current_item = this.getItem(item.parent);
				current_subitem = item;
				current_rightitem = null;
				current_pageitem = null;	
			} else if (level == 3) {
				if (current_rightitem != null) {
					current_rightitem.unselect();
				}			
				item.select(level,bookmark);				
				current_subitem = this.getItem(item.parent);
				current_item = this.getItem(current_subitem.parent);				
				current_rightitem = item;
				current_pageitem = null;
			} else if (level == 4) {
				if (current_pageitem != null) {
					current_pageitem.unselect();
				}
				item.select(level,bookmark);				
				current_rightitem = this.getItem(item.parent);
				current_subitem = this.getItem(current_rightitem.parent);
				current_item = this.getItem(current_subitem.parent);
				current_pageitem = item;				
			}				
		} else {		
			if (current_item != null) {
				current_item.unselect();			
			}
			item.select(level,bookmark);
			current_item = item;
			current_subitem = null;
			current_rightitem = null;
			current_pageitem = null;
		}
	}
	
	this.getItem = function(id) {
		for (i = 0; i<items.length; i++) {
			if (items[i].id == id) {
				return items[i];
				break;
			}
		}		
	}
	
	this.print = function() {
		var html = '';
		for (i = 0; i<items.length; i++) {
			if (items[i].parent == 0) {
				html += items[i].print();
			}
		}
		document.getElementById('nav-top').innerHTML = html;
	}
	
	this.printTree = function(id) {
		var item = this.getItem(id);
		var html = '<ul class="tree">';
		for (i = 0; i<item.items.length; i++) {
			html += item.items[i].printTree();
		}
		html += '</ul>';
		return html;
	}	
	
}

function menuitem(id, name, parent, docID) {
	
	var id;
	var name;
	var parent;
	var docID
	
	this.id = id;
	this.name = name;
	this.parent = parent;
	this.items = new Array()
	this.docID = docID;
	
	this.select = function(level,bookmark) {
		if (this.parent == 0) {
			if (this.items.length == 0) {
				document.getElementById('nav-top-sub').className = "hidden";			
				if(document.getElementById(id)) {document.getElementById(id).className += " selected"};				
			} else {
				var html = '';
				for (i = 0; i<this.items.length; i++) {
					html += this.items[i].print();
				}
				document.getElementById('nav-top-sub').innerHTML = html;
				document.getElementById('nav-top-sub').className = "";			
				document.getElementById(id).className += " opened";				
			}
			document.getElementById('center').className = (this.id == 1 ? "index" : "full");
			document.getElementById('right-nav').className = "hidden";
			document.getElementById('pagetitle').innerHTML = this.name;
			document.getElementById('pagemenu').className = "hidden";  
			document.getElementById('pagetree').innerHTML = "";			
		} else if (level == 2) {
			document.getElementById(id).className += " selected";
			document.getElementById('center').className = (this.id == 1 ? "index" : "full");
			document.getElementById('right-nav').className = "hidden";
			document.getElementById('pagetitle').innerHTML = this.name;
			document.getElementById('pagemenu').className = "hidden";  
			document.getElementById('pagetree').innerHTML = "";
		} else if (level == 3) {
			document.getElementById('center').className = "";
			document.getElementById('right-nav').className = "";
			document.getElementById('right-nav-title').innerHTML = menu.getItem(this.parent).name;
			var rightitems = menu.getItem(this.parent).items;
			var html = '';
			for (i = 0; i<rightitems.length; i++) {
				html += rightitems[i].print();
			}
			document.getElementById('nav-right').innerHTML = html;
			document.getElementById('pagemenu').className = 'hidden';
			document.getElementById('page-nav').innerHTML = '';				
			document.getElementById(id).className = "selected";
			document.getElementById(this.parent).className = "selected";
			document.getElementById('pagetitle').innerHTML = this.name;  
			document.getElementById('pagetree').innerHTML = '';
		} else if (level == 4) {
			document.getElementById('center').className = "";
			document.getElementById('right-nav').className = "";
			var rightmenu = menu.getItem(menu.getItem(this.parent).parent);
			document.getElementById('right-nav-title').innerHTML = rightmenu.name;
			var rightitems = rightmenu.items;
			var html = '';
			for (i = 0; i<rightitems.length; i++) {
				html += rightitems[i].print();
			}			
			document.getElementById('nav-right').innerHTML = html;
			html = '';
			var pageitems = menu.getItem(this.parent).items;
			for (i = 0; i<pageitems.length; i++) {
				html += pageitems[i].print();
			}
			document.getElementById('pagemenu').className = "";
			document.getElementById('page-nav').innerHTML = html;			
			document.getElementById(id).className = "selected";
			document.getElementById(this.parent).className = "selected";
			document.getElementById(rightmenu.id).className = "selected";
			document.getElementById('pagetree').innerHTML = '';			
		}
		loadPage(this,bookmark);
	}
	
	this.unselect = function() {
		if(document.getElementById(id)) {document.getElementById(id).className = ""};
	}
	
	this.print = function() {
		if(this.name != 'Fotoalbum' && this.name != 'Filmpjes' && this.name != 'In de kijker') {
			return '<li id="'+this.id+'"><a href="javascript:menu.selectItem('+this.id+');">'+this.name+'</a></li>\r\n';
		}else{
			return '';
		}
	}
	
	this.addItem = function(menuitem) {
		this.items[this.items.length] = menuitem;
	}
	
	this.printTree = function() {
		var html = this.print();
		if (this.items.length != 0) {
			html += '<ul class="tree">';
			for (var item in this.items) {
				html += this.items[item].printTree();
			}
			html += '</ul>';
		}
		return html;
	}
	
}
