Hash.addMethods({
    forEach: function(iterator, context) {
        var context = context || window;
        if (!Object.isFunction(iterator)) {
            throw "You must give a function to forEach";
        }
        var key;
        for (key in this._object) {
            iterator.call(context, key, this._object[key]);
        }
    }
});
Element.addMethods({
    popId: function(element) {
        var id = element.readAttribute('id');
        if (id.indexOf('-') != -1) {
            return id.split('-').pop();
        }
        return '';
    },
    delegate: function(element, eventType, filterSelector, handler) {
        element.observe(eventType, function(event) {
            var filtered = event.findElement(filterSelector);
            if (filtered) {
                handler(event);
            }
        });
    }
});

Ajax.Responders.register({
    onException: function(o, e) {
        Log.error(e);
    }
});

