﻿// JScript File

var timerlen = 5;
var slideAniLen = 500;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown (objName)
{
    if (moving[objName] == true)
    {
        return;
    }
    
    if  (document.getElementById(objName).style.display  != "none")
    {
        return;
    }
    
    moving[objName] = true;
    dir[objName] = "down";
    startslide(objName);
}

function slideup (objName)
{
    if (moving[objName] == true)
    {
        return;
    }
    
    if  (document.getElementById(objName).style.display  == "none")
    {
        return;
    }
    
    moving[objName] = true;
    dir[objName] = "up";
    startslide(objName);
}

function startslide (objName)
{
    obj[objName] = document.getElementById(objName);
 
    endHeight[objName] = parseInt(obj[objName].style.height);
    startTime[objName] = (new Date()).getTime();
 
    if(dir[objName] == "down")
    {
        obj[objName].style.height = "1px";
    }
 
    obj[objName].style.display = "block";
 
    timerID[objName] = setInterval('slidetick(\'' + objName + '\');',timerlen);
}

function slidetick(objName)
{
    var elapsed = (new Date()).getTime() - startTime[objName];
 
    if (elapsed > slideAniLen)
    {
        endSlide(objName)
    }
    else
    {
        var d = Math.round(elapsed / slideAniLen * endHeight[objName]);
        if(dir[objName] == "up")
        {
            d = endHeight[objName] - d;
        }
 
        obj[objName].style.height = d + "px";
    }
 
    return;
}

function endSlide(objName)
{
    clearInterval(timerID[objName]);
 
    if(dir[objName] == "up")
    {
        obj[objName].style.display = "none";
    }
 
    obj[objName].style.height = endHeight[objName] + "px";
 
    delete(moving[objName]);
    delete(timerID[objName]);
    delete(startTime[objName]);
    delete(endHeight[objName]);
    delete(obj[objName]);
    delete(dir[objName]);
 
    return;
}