/**
 * @class Ext.CompositeElementLite
 */
Ext.apply(Ext.CompositeElementLite.prototype, {	
	addElements : function(els, root){
        if(!els){
            return this;
        }
        if(typeof els == "string"){
            els = Ext.Element.selectorFunction(els, root);
        }
        var yels = this.elements;        
	    Ext.each(els, function(e) {
        	yels.push(Ext.get(e));
        });
        return this;
    },
    
    
/** * Clears this composite and adds the elements returned by the passed selector. * @param {String/Array} els A string CSS selector, an array of elements or an element * @return {CompositeElement} this */ fill : function(els){ this.elements = []; this.add(els); return this; },
/** * Returns the first Element * @return {Ext.Element} */ first : function(){ return this.item(0); },
/** * Returns the last Element * @return {Ext.Element} */ last : function(){ return this.item(this.getCount()-1); },
/** * Returns true if this composite contains the passed element * @param el {Mixed} The id of an element, or an Ext.Element, or an HtmlElement to find within the composite collection. * @return Boolean */ contains : function(el){ return this.indexOf(el) != -1; },
/** * Filters this composite to only elements that match the passed selector. * @param {String} selector A string CSS selector * @return {CompositeElement} this */ filter : function(selector){ var els = []; this.each(function(el){ if(el.is(selector)){ els[els.length] = el.dom; } }); this.fill(els); return this; },
/** * Removes the specified element(s). * @param {Mixed} el The id of an element, the Element itself, the index of the element in this composite * or an array of any of those. * @param {Boolean} removeDom (optional) True to also remove the element from the document * @return {CompositeElement} this */ removeElement : function(keys, removeDom){ var me = this, els = this.elements, el; Ext.each(keys, function(val){ if ((el = (els[val] || els[val = me.indexOf(val)]))) { if(removeDom){ if(el.dom){ el.remove(); }else{ Ext.removeNode(el); } } els.splice(val, 1); } }); return this; } });