/**
 * @private
 *
 * CSS Transform implementation
 */
Ext.define('Ext.util.translatable.CssTransform', {
    extend: 'Ext.util.translatable.Dom',
 
    alias: 'translatable.csstransform', // also configures Factoryable
 
    isCssTransform: true,
 
    posRegex: /(\d+)px[^\d]*(\d+)px/,
 
    doTranslate: function(x, y) {
        var me = this,
            element = me.getElement();
 
        if (!me.destroyed && !element.destroyed) {
            element.translate(x, y);
        }
 
        me.callParent([x, y]);
    },
 
    syncPosition: function() {
        var pos = this.posRegex.exec(this.getElement().dom.style.tranform);
 
        if (pos) {
            this.x = parseFloat(pos[1]);
            this.y = parseFloat(pos[2]);
        }
 
        return [this.x, this.y];
    },
 
    destroy: function() {
        var element = this.getElement();
 
        if (element && !element.destroyed) {
            element.dom.style.webkitTransform = null;
        }
 
        this.callParent();
    }
});