function ExpandMenu(parentId, title)
{
    this.items = [];
    this.mainDiv = document.createElement('div');
    this.mainDiv.className = 'menu';
    this.div = document.createElement('div');
    this.mainDiv.appendChild(this.div);
    this.titleDiv = document.createElement('div');
    this.titleDiv.className = 'menuTitle';
    this.titleDiv.innerHTML = title;
    this.div.appendChild(this.titleDiv);
    this.footerDiv = document.createElement('div');
    this.footerDiv.className = 'footerDiv';
    this.mainDiv.appendChild(this.footerDiv);
    document.getElementById(parentId).appendChild(this.mainDiv)
}

ExpandMenu.prototype.addItem = function(title, link, target, execute)
{
    itemDiv = document.createElement('div');
    itemDiv.className = 'menuItem';
    itemDiv.innerHTML = title;
    
    subMenu = new SubMenu();
    
    itemDiv.subMenu = subMenu;
    itemDiv.menu = this;
    itemDiv.link = link;
    itemDiv.target = target;
    itemDiv.execute = execute;
    
    itemDiv.subMenu.expanded = false;
    
    itemDiv.onmouseover = function()
    {
        this.className = 'menuItem_highlighted menuItem highlighted';
    };
    itemDiv.onmouseout = function()
    {
        this.className = 'menuItem';
    };
    
    itemDiv.onclick = function()
    {
        if (! this.subMenu.expanded) {
            this.menu.collapseItems();
            this.subMenu.expand();
        } else {
            this.subMenu.collapse();
        }
        if (this.link) {
            open(this.link, this.target);
        }
        if(this.execute) {
            this.execute();
        }
    };
    this.div.appendChild(itemDiv);
    this.div.appendChild(subMenu.div);
    this.items.push(subMenu);
    return subMenu;
};

ExpandMenu.prototype.collapseItems = function ()
{
    for(key in this.items) {
        this.items[key].collapse();
    }
};

function SubMenu()
{
    this.div = document.createElement('div');
    this.div.className = 'subMenu';
}

SubMenu.prototype.addItem = function(title, link, target, execute)
{
    itemDiv = document.createElement('div');
    itemDiv.className = 'subMenuItem';
    itemDiv.innerHTML = title;
    itemDiv.link = link;
    itemDiv.target = target;
    itemDiv.execute = execute;
    itemDiv.onclick = function()
    {
        if (this.link) {
            open(this.link, this.target);
        }
        if(this.execute) {
            this.execute();
        }
    };
    itemDiv.onmouseover = function()
    {
        this.className = 'subMenuItem_highlighted subMenuItem highlighted';
    };
    itemDiv.onmouseout = function()
    {
        this.className = 'subMenuItem';
    };
    this.div.appendChild(itemDiv);
};

SubMenu.prototype.expand = function()
{
    this.div.style.display = 'block';
    this.expanded = true;
};

SubMenu.prototype.collapse = function()
{
    this.div.style.display = 'none';
    this.expanded = false;
};
