var DDSPEED = 10;
var DDTIMER = 15;

function menu(id, d)
{
    var h = document.getElementById(id + '-parent');
    var c = document.getElementById(id + '-child');
    clearInterval(c.timer);
    if (d == 1)
    {
        clearTimeout(h.timer);
        if (c.maxh && c.maxh <= c.offsetHeight) {
            return
        }
        else if (!c.maxh)
        {
            c.style.display = 'block';
            c.style.height = 'auto';
            c.maxh = c.offsetHeight;
            c.style.height = '0px';
        }
        c.timer = setInterval(function ()
        {
            ddSlide(c, 1)
        }, DDTIMER);
    }
    else {
        h.timer = setTimeout(function ()
        {
            ddCollapse(c)
        }, 50);
    }
}

function ddCollapse(c)
{
    c.timer = setInterval(function ()
    {
        ddSlide(c, - 1)
    }, DDTIMER);
}

function hide(id)
{
    var h = document.getElementById(id + '-parent');
    var c = document.getElementById(id + '-child');
    clearTimeout(h.timer);
    clearInterval(c.timer);
    if (c.offsetHeight < c.maxh) {
        c.timer = setInterval(function ()
        {
            ddSlide(c, 1)
        }, DDTIMER);
    }
}

function ddSlide(c, d)
{
    var currh = c.offsetHeight;
    var dist;
    if (d == 1) {
        dist = (Math.round((c.maxh - currh)  / DDSPEED));
    }
    else {
        dist = (Math.round(currh  / DDSPEED));
    }
    if (dist <= 1 && d == 1) {
        dist = 1;
    }
    c.style.height = currh + (dist * d) + 'px';
    c.style.opacity = currh  / c.maxh;
    c.style.filter = 'alpha(opacity=' + (currh * 100  / c.maxh) + ')';
    if ((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)) {
        clearInterval(c.timer);
    }
}
