/*
 * DD functions
 * $Header: /cvs_eng/DestinationSearch/web/js/DSEvents.js,v 1.4 2006/02/01 15:07:09 rsimpson Exp $
 */

function DSEvent() {
    this.events = {};
}
DSEvent.prototype.registerEvent = function( type ) {
    if( typeof this.events[type] != 'undefined' ) {
        alert( 'Attempt to re-register event type: ' + type );
    } else {
        this.events[type] = [];
    }
}
DSEvent.prototype.triggerEvent = function( type, evt, obj ) {
    if( typeof this.events[type] == 'undefined' ) {
        alert( 'Unknown event: ' + type );
        return false;
    }
    if( typeof evt != 'object' || evt == null ) {
        evt = {};
    }
    evt.eventType = type;

    for( var i = 0; i < this.events[type].length; ++i ) {
        if( this.events[type][i]( evt, obj ) == false ) {
            return false;
        }
    }
    return true;
}
DSEvent.prototype.addListener = function( type, callback ) {
    if( typeof this.events[type] == 'undefined' ) {
        alert( 'attempt to listen to unknown event type: ' + type );
    } else {
        this.events[type].push( callback );
    }
}
DSEvent.prototype.getListeners = function( type ) {
    return this.events[type];
}