var dropdown_disposeQueue = new Array();
var absolutedropdown_disposeQueue = new Array();
var absolutedropdown_select = function(id) {};

function absolutedropdown_setCallback(f) {
    if(f == undefined)
        f = function(id) {};
    absolutedropdown_select = f;
}

function absolutedropdown_show(id) {
    addHover(id);
    if(document.getElementById('absolutedropdown_'+id) == undefined) return; // XXX
    var ids = id.split('-');
    for(var i in ids)
        if(absolutedropdown_disposeQueue[ids.slice(0,parseInt(i)+1).join('-')] != undefined)
            delete absolutedropdown_disposeQueue[ids.slice(0,parseInt(i)+1).join('-')];
    dropdown_processDisposes();
    for(var i in ids)
        document.getElementById('absolutedropdown_'+ids.slice(0,parseInt(i)+1).join('-')).style.display = 'block';
}

function dropdown_show(id) {
    if(dropdown_disposeQueue[id] != undefined)
        delete dropdown_disposeQueue[id];
    dropdown_processDisposes();
    with(document.getElementById('dropdown_'+id)) {
        style.display = 'block';
        parentNode.colSpan = 7;
    }
    document.getElementById('dropdown_button_'+id).style.borderStyle = 'inset';
}

function dropdown_hide(id) {
    dropdown_disposeQueue[id] = true;
    setTimeout('dropdown_processDisposes()', 700);
}

function absolutedropdown_hide(id) {
    removeHover(id);
    if(document.getElementById('absolutedropdown_'+id) == undefined) return; // XXX
    var ids = id.split('-');
    for(var i in ids)
        absolutedropdown_disposeQueue[ids.slice(0,parseInt(i)+1).join('-')] = true;
    setTimeout('dropdown_processDisposes()', 700);
}

function dropdown_processDisposes() {
    for(id in dropdown_disposeQueue) {
        with(document.getElementById('dropdown_'+id)) {
            style.display = 'none';
            parentNode.colSpan = 1;
        }
        delete dropdown_disposeQueue[id];

        document.getElementById('dropdown_button_'+id).style.borderStyle = 'outset';
    }
    for(id in absolutedropdown_disposeQueue) {
        document.getElementById('absolutedropdown_'+id).style.display = 'none';
        delete absolutedropdown_disposeQueue[id];
    }
}

function addHover(id) {
    if(document.getElementById('absolutedropdown_li_'+id) == undefined)
        return;
    document.getElementById('absolutedropdown_li_'+id).className += ' dropdown_menu_hover';
}

function removeHover(id) {
    if(document.getElementById('absolutedropdown_li_'+id) == undefined)
        return;
    with(document.getElementById('absolutedropdown_li_'+id)) {
        className = className.replace('dropdown_menu_hover', '').replace(' ', '');
    }
}