text: /**
   * @constructor
   * @param {Object} options { element «Node | id», name: «String» }
   */
  hui.ui.Columns = function(options) {
    this.name = options.name;
    this.options = options || {};
    this.element = hui.get(options.element);
    this.body = hui.get.firstByTag(this.element,'tr');
    hui.ui.extend(this);
  };
  
  /**
   * Creates a new Columns opject
   */
  hui.ui.Columns.create = function(options) {
    options = options || {};
    options.flexible = true;
    options.element = hui.build('table',{'class' : 'hui_columns',html : '<tbody><tr></tr></tbody>'});
    return new hui.ui.Columns(options);
  };
  
  hui.ui.Columns.prototype = {
    $$layout : function() {
      if (this.options.flexible) {
        return;
      }
      this.element.style.height = hui.position.getRemainingHeight(this.element)+'px';
      var children = hui.get.children(this.element);
      var left = 0;
      for (var i=0; i < children.length; i++) {
        var child = children[i];
        var width = (this.element.clientWidth/children.length);
        child.style.width = width + 'px';
        child.style.position = 'absolute';
        child.style.marginLeft = left + 'px';
        child.style.height = this.element.clientHeight+'px';
        left+=width;
      }
    },
    addToColumn : function(index,widget) {
      var c = this._ensureColumn(index);
      c.appendChild(widget.getElement());
    },
    setColumnStyle : function(index,style) {
      var c = this._ensureColumn(index);
      hui.style.set(c,style);
    },
    setColumnWidth : function(index,width) {
      var c = this._ensureColumn(index);
      c.style.width=width+'px';
    },
    _ensureColumn : function(index) {
      var children = hui.get.children(this.body);
      for (var i=children.length-1;i<index;i++) {
        this.body.appendChild(hui.build('td',{'class':'hui_columns_column'}));
      }
      return hui.get.children(this.body)[index];
    }
  };