/*
---

name: Transform.MooTools

license: MIT-style license.

author: Ryan Florence <http://ryanflorence.com>

requires:
- Core/Element
- CSSAnimation

provides: [MooTools]

...
*/

Element.Properties.transform = {

set: function(supported){
return this.store('transform', new Transform(this, supported));
},

get: function(){
var instance = this.retrieve('transform');
return instance || this.set('transform').get('transform');
}

};

Element.Properties.transition = {

set: function(supported){
return this.store('transition', new Transition(this, supported));
},

get: function(){
var instance = this.retrieve('transition');
return instance || this.set('transition').get('transition');
}

};

(function(){

var obj = {};

['translate', 'rotate', 'scale', 'skew', 'matrix'].each(function(method){
obj[method] = function(){
var instance = this.get('transform');
instance[method].apply(instance, Array.slice(arguments, 0));
return this;
};
});

obj.clearTransform = function(){
this.get('transform').clear();
return this;
};

['set', 'clear'].each(function(method){
obj[method + 'Transition'] = function(){
var instance = this.get('transition');
instance[method].apply(instance, Array.slice(arguments, 0));
return this;
}
});

Element.implement(obj);

}());
