function delegate( that, thatMethod )
{
    var _params = [];
    var rtn = function() {
        for(var n = 0; n < arguments.length; ++n) { _params.push(arguments[n]) };
        var _params_copy = _params.splice(0, _params.length );
        return thatMethod.apply( that, _params_copy );
    };
    if(arguments.length > 2)
    {
        for(var n = 2; n < arguments.length; ++n) { _params.push(arguments[n]) };
        return rtn;
    }
    return rtn;
};


