var exp_ids = new Array();
function expand(id, maxheight){
    this.running = false;
    this.id = id;
    this.height = 0;
    this.maxheight = maxheight;
    this.div = document.getElementById(id);
}

var expander = {
    toggle : function (id, maxheight){
        var exp = exp_ids[id];
        if(!exp){
            exp = new expand(id,maxheight);
            exp_ids[id] = exp;
        }

        if(exp.running == false){
            exp.running = true;
            if(exp.div.style.display=='block'){
                expander.shrink(id);
            }else{
                expander.expand(id);
            }
        }
    },

    shrink : function(id){
        var exp = exp_ids[id];

        if(exp.height > 0){
            exp.height -= 5;
            exp.div.style.height = exp.height + 'px';
        } else if(exp.height <= 0){
            exp.div.style.height = '0px';
            exp.div.style.display='none'
            exp.running = false;
        }
        if(exp.running){
            window.setTimeout('expander.shrink(\''+id+'\')', 25);
        }
    },

    expand : function(id){
        var exp = exp_ids[id];
        
        exp.div.style.display='block'
        if(exp.height < exp.maxheight){
            exp.height += 5;
            exp.div.style.height = exp.height + 'px';
        } else {
            exp.height = exp.maxheight;
            exp.div.style.height = exp.height + 'px';
            exp.running = false;
        }
        if(exp.running){
            window.setTimeout('expander.expand(\''+id+'\')', 25)
        }
    }
};
