lib/Ext/util/DelayedTask.js
function(delay, newFn, newScope, newArgs) {
        var me = this;

        //cancel any existing queued functions
        me.cancel();

        //set all the new configurations

        if (Ext.isNumber(delay)) {
            me.setDelay(delay);
        }

        if (Ext.isFunction(newFn)) {
            me.setFn(newFn);
        }

        if (newScope) {
            me.setScope(newScope);
        }

        if (newScope) {
            me.setArgs(newArgs);
        }

        //create the callback method for this delayed task
        var call = function() {
            me.getFn().apply(me.getScope(), me.getArgs() || []);
            me.cancel();
        };

        me.setInterval(setInterval(call, me.getDelay()));
    }
function(delay, newFn, newScope, newArgs) {
        var me = this;

        //cancel any existing queued functions
        me.cancel();

        //set all the new configurations

        if (Ext.isNumber(delay)) {
            me.setDelay(delay);
        }

        if (Ext.isFunction(newFn)) {
            me.setFn(newFn);
        }

        if (newScope) {
            me.setScope(newScope);
        }

        if (newScope) {
            me.setArgs(newArgs);
        }

        //create the callback method for this delayed task
        var call = function() {
            me.getFn().apply(me.getScope(), me.getArgs() || []);
            me.cancel();
        };

        me.setInterval(setInterval(call, me.getDelay()));
    }
Cancels any pending timeout and queues a new one.
@param {Number} delay The milliseconds to delay
@param {Function} newFn Overrides the original function passed when instantiated.
@param {Object} newScope Overrides the original `scope` passed when instantiated. Remember that if no scope
is specified, `this` will refer to the browser window.
@param {Array} newArgs Overrides the original `args` passed when instantiated.