function ObjectHandler() {
    this._object_handlers = {};
};

ObjectHandler.prototype.trigger = function(signal) {
    var handler = this._object_handlers[signal];
    if (handler==null) return null;

    var obj = handler['obj'];
    var func = handler['func'];

    var args = [];
    for (var i=1;i<arguments.length;i++) args.push(arguments[i]);

    if (obj==null) return func.apply(null, args);
    else return func.apply(obj, args);
};

ObjectHandler.prototype.setHandler = function(signal, obj, func) {
    if (obj==null && func==null) {
	delete this._object_handlers[signal];
	return;
    }

    else if (func==null) this._object_handlers[signal] = {'func':obj};
    else this._object_handlers[signal] = {'obj':obj, 'func':func};
};


