var Observer = new Object();

Observer.listiners = new Hash();

Observer.notify = function(obj, message) {
    var methods = Observer.listiners.get(message);
    if (!methods) return;
    
    for (var i=0; i<methods.length; i++) {
        methods[i](obj);
    }
}

Observer.listen = function(message, method) {
    if (!Observer.listiners.get(message)) {
        Observer.listiners.set(message, new Array());    
    }
    
    Observer.listiners.get(message).push(method);
    
}

function notify(obj, message) {
    Observer.notify(obj, obj.name+'.'+message);
}

function listen(message, method) {
    Observer.listen(message, method);
}
