/**
 * @class Ext.fx.target.Element
 * @extends Ext.fx.target.Target
 *
 * This class represents a animation target for an {@link Ext.core.Element}. In general this class will not be
 * created directly, the {@link Ext.core.Element} will be passed to the animation and
 * and the appropriate target will be created.
 */

Ext.define('Ext.fx.target.Element', {

   
/* Begin Definitions */
   
    extend
: 'Ext.fx.target.Target',
   
   
/* End Definitions */

    type
: 'element',

    getElVal
: function(el, attr, val) {
       
if (val == undefined) {
           
if (attr === 'x') {
                val
= el.getX();
           
}
           
else if (attr === 'y') {
                val
= el.getY();
           
}
           
else if (attr === 'scrollTop') {
                val
= el.getScroll().top;
           
}
           
else if (attr === 'scrollLeft') {
                val
= el.getScroll().left;
           
}
           
else if (attr === 'height') {
                val
= el.getHeight();
           
}
           
else if (attr === 'width') {
                val
= el.getWidth();
           
}
           
else {
                val
= el.getStyle(attr);
           
}
       
}
       
return val;
   
},

    getAttr
: function(attr, val) {
       
var el = this.target;
       
return [[ el, this.getElVal(el, attr, val)]];
   
},

    setAttr
: function(targetData) {
       
var target = this.target,
            ln
= targetData.length,
            attrs
, attr, o, i, j, ln2, element, value;
       
for (i = 0; i < ln; i++) {
            attrs
= targetData[i].attrs;
           
for (attr in attrs) {
               
if (attrs.hasOwnProperty(attr)) {
                    ln2
= attrs[attr].length;
                   
for (j = 0; j < ln2; j++) {
                        o
= attrs[attr][j];
                        element
= o[0];
                        value
= o[1];
                       
if (attr === 'x') {
                            element
.setX(value);
                       
}
                       
else if (attr === 'y') {
                            element
.setY(value);
                       
}
                       
else if (attr === 'scrollTop') {
                            element
.scrollTo('top', value);
                       
}
                       
else if (attr === 'scrollLeft') {
                            element
.scrollTo('left',value);
                       
}
                       
else {
                            element
.setStyle(attr, value);
                       
}
                   
}
               
}
           
}
       
}
   
}
});