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('');
for(var i=0; i < this.items.length; i++)
{
this.items[i].writeHTML(skipLevels > 0 ? skipLevels - 1 : 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 += '';
for(var i=0; i < this.items.length; i++)
{
result += this.items[i].getHTML(skipLevels > 0 ? skipLevels - 1 : 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();
}
}
}