/*  Generic effect functions
    Copyright Rami Chowdhury, 2008 */

function get_height(elt)
{
    var eHt = 0;
    if (elt.hasOwnProperty('originalHeight'))
    {
        eHt = elt.originalHeight;
    }
    else if (elt.style.display == 'none')
    {
        elt.style.overflow = 'hidden'; elt.style.visibility = 'hidden'; elt.style.display = '';
        eHt = elt.offsetHeight;
        elt.style.display = 'none';
    }
    else
    {
        eHt = elt.offsetHeight;
    }
    elt.originalHeight = eHt;
    return eHt;
}

/* The slider */
function do_slide(e, tgt, iv, dire)
{
    var eht = e.offsetHeight;
    var eopc = (eht / tgt);
    if ((eht * dire) < tgt)
    {
        e.style.height = (eht + (10 * dire)) + 'px';
        e.style.opacity = eopc;
        setTimeout(function() { do_slide(e, tgt, iv, dire) }, iv);
    }
    else
    {
        e.style.height = tgt + 'px'; e.style.opacity = 1;
        if (dire == -1)
        {
            e.style.display = 'none';
            e.style.visibility = 'hidden';
        }
        else
        {
            e.style.visibility = 'visible';
        }
    }
}

function slide_elt(eid, opening)
{
    var e = document.getElementById(eid);
    if (opening == null)
    {
        opening = (e.style.display == 'none') ? true : false;
    }
    if (opening == true) { opening = 1; }
    else { opening = -1; }
    var oHt = get_height(e);
    var tHt = (opening == 1) ? oHt : -7;
    var eHt = (opening == 1) ? 0 : oHt;
    e.style.overflow = 'hidden';
    e.style.display = "";
    e.style.height = eHt + 'px';
    e.style.visibility = 'visible';
    e.style.opacity = (opening == 1) ? 0 : 1;
    do_slide(e, tHt, 1, opening);
    return false;
}