function menu_item(parent, id, title, imageNormal, imageOver, url, level, expanded, height) { this.parent = parent; this.id = id; this.title = title; this.imageNormal = imageNormal; this.imageOver = imageOver; this.url = (url && url != '') ? url : '#' + title; this.level = level ? level : 0; this.expanded = expanded; var cookieExpanded = getCookie(id); if(cookieExpanded){ this.expanded = cookieExpanded == "true"; } this.height = height; this.hasImage = this.imageOver != ''; if(this.hasImage){ this.imageOverPreloader = new Image(); this.imageOverPreloader.src = imageOver; } this.getFullId = function() { return (this.parent ? this.parent.getFullId() + '_' : '') + this.id; } this.items = new Array(); this.getMenu = function() { var result = this; while(result.parent) result = result.parent; return result; } this.menu = this.getMenu(); this.addItem = function(id, title, imageNormal, imageOver, url, expanded, height) { var item = new menu_item(this, id, title, imageNormal, imageOver, url, this.level + 1, expanded, height); this[id] = item; this.items.push(item); } this.collapse = function(){ this.expanded = false; this.updateExpanded(); } this.expand = function(){ this.expanded = true; this.updateExpanded(); } this.toggleExpanded = function(){ this.expanded = !this.expanded; this.updateExpanded(); } this.onClick = function() { if(this.items.length > 0) { this.toggleExpanded(); if(this.menu.expandMode == 'single') { var p = this.parent; var lp = this; while(p) { for(var i = 0; i' + linkContent + ''); this.liElement = document.getElementById(this.getFullId()); this.linkElement = this.liElement.childNodes[0]; this.linkElement.menu_item = this; this.linkElement.onclick = function(){return this.menu_item.onClick();}; this.linkElement.onmouseover = function(){this.menu_item.onMouseOver();}; this.linkElement.onmouseout = function(){this.menu_item.onMouseOut();}; if(this.hasImage) this.linkElement.style.background = 'url(' + this.imageNormal + ')'; if(this.height) this.linkElement.style.height = this.height; } if(this.items.length > 0) { document.write(''); this.childrenElement = document.getElementById(this.getFullId() + '_items'); this.updateExpanded(); } } this.getHTML = function(skipLevels) { var result = ''; if(skipLevels <= 0) { var linkContent = this.hasImage ? '' : this.title; result += '
  • ' + linkContent + '
  • '; } if(this.items.length > 0) { result += ''; } return result; } this.mapToHTML = function(skipLevels) { if(skipLevels <= 0) { this.liElement = document.getElementById(this.getFullId()); this.linkElement = this.liElement.childNodes[0]; this.linkElement.href = this.url; this.linkElement.innerHTML = this.hasImage ? '' : this.title; this.linkElement.menu_item = this; this.linkElement.onclick = function(){return this.menu_item.onClick();}; this.linkElement.onmouseover = function(){this.menu_item.onMouseOver();}; this.linkElement.onmouseout = function(){this.menu_item.onMouseOut();}; if(this.hasImage) this.linkElement.style.background = 'url(' + this.imageNormal + ')'; if(this.height) this.linkElement.style.height = this.height; } if(this.items.length > 0) { for(var i=0; i < this.items.length; i++) { this.items[i].mapToHTML(skipLevels > 0 ? skipLevels - 1 : 0); } this.childrenElement = document.getElementById(this.getFullId() + '_items'); this.updateExpanded(); } } }