// ===============================================================
// CBkort version 2.x, copyright Carl Bro GIS&IT, 2006
// ===============================================================
// $Archive: /Products/CBKort2/development/2.6/standard/wwwroot/js/standard/leftbar.js $ 
// $Date: 9-07-10 14:57 $
// $Revision: 6 $ 
// $Author: Kpo $
// =============================================================== 


function LeftBar()
{
    this.items = new Array();
    this.items[0] = {id:'themeselector'};
    this.top = null;
    this.left = null;
    this.width = null;
    this.defaultheigth = null;
    this.maxheigth = null;
    this.currentheigth = null;
    this.diff = 50;
    this.defaultok = false;
    this.expanded = false;
}

LeftBar.prototype.init = function() {
    cbKort.events.addListener ('WINDOW_RESIZED',SpatialMap.Function.bind(this.resize, this));
    this.windowSize = cbKort.getWindowSize ();
    this.setDefault ();
}

LeftBar.prototype.setDefault = function()
{
    if(!this.defaultok) {
        var e = getElement('leftbar');
        this.top = getY (e);
        this.left = getX (e);
        this.width = getWidth (e);
        this.defaultheigth = getHeight (getElement(this.items[0].id));
        this.currentheigth = this.defaultheigth;
        this.expanded = false;
        
        this.diff = getHeight (e) - this.defaultheigth;

        var newh = getHeight (cbKort.map)-1;
        setHeight (e,newh);
        this.maxheigth = newh;
        this.defaultheigth = newh - this.diff;
        this.currentheigth = newh - this.diff;
        setHeight (getElement(this.items[0].id),this.currentheigth);
        this.defaultok = true;
        
        this.lastid = null;
        this.currentid = null;
    }
}

LeftBar.prototype.resize = function(event,size) {
    
    this.maxheigth = getHeight (cbKort.map)-1;
    e = getElement('leftbar');
    if(e) {
        setHeight(e,this.maxheigth);
    }
    this.defaultheigth = this.maxheigth - this.diff;
    if (this.expanded) {
        this.currentheigth = this.maxheigth;
    } else {
        this.currentheigth = this.maxheigth - this.diff;
    }
    this.setToCurrentHeigth();
}

LeftBar.prototype.setHeight = function(height)
{
    if(!this.defaultok)
        this.setDefault();

    this.expanded = true;
    if(!height) {
        if(getHeight (getElement(this.items[0].id)) == this.defaultheigth) {
            height = getHeight (getElement('leftbar'));
        } else {
            height = getHeight (getElement('leftbar'))-this.diff;
            this.expanded = false;
        }
    }

    for(var i=0;i<this.items.length;i++) {
        this.items[i].expanded = this.expanded;
        setHeight (getElement(this.items[i].id),height);
    }
    this.currentheigth = height;
}

LeftBar.prototype.addItem = function(id)
{
    if(!this.defaultok)
        this.setDefault();

    this.items[this.items.length] = {id:id};
    var e = getElement(id);
    setY (e,this.top);
    setX (e,this.left);
    setWidth (e,this.width);
    setHeight (e,this.currentheigth);
}

LeftBar.prototype.showItem = function(id)
{
    this.lastid = this.currentid;
    this.currentid = id;
    for(var i=0;i<this.items.length;i++)
    {
        var e = getElement(this.items[i].id);
        if(this.items[i].id==id)
            showBlock(e);
        else
            hideBlock(e);
    }
}

LeftBar.prototype.showLastItem = function()
{
    this.showItem(this.lastid);
}

LeftBar.prototype.setToCurrentHeigth = function()
{
    for(var i=0;i<this.items.length;i++)
        setHeight (getElement(this.items[i].id),this.currentheigth);
}

var leftBar = new LeftBar();
