﻿Type.registerNamespace('Zextenders')

Zextenders.DynamicEvents = function()
{
    this._addedEvents = new Array();
    this._removedEvents = new Array();
    this._itemUpdatedEvents = new Array();
}

Zextenders.DynamicEvents.prototype =
{
    add_AddedEvent : function(value)
    {
        this._addedEvents.push(value);
    },
    
    add_RemovedEvent : function(value)
    {
        this._removedEvents.push(value);
    },
    
    add_ItemUpdatedEvent : function(value)
    {
        this._itemUpdatedEvents.push(value);
    },
    
    fireAddedEvents : function(sender, arg)
    {
        for(var i=0;i<this._addedEvents.length;i++)
        {
            this._addedEvents[i](sender, arg);
        }
    },
    
    fireRemovedEvents : function(sender, arg)
    {
        for(var i=0;i<this._removedEvents.length;i++)
        {
            this._removedEvents[i](sender, arg);
        }
    },
    
    fireItemUpdatedEvents : function(sender, arg)
    {
        for(var i=0;i<this._itemUpdatedEvents.length;i++)
        {
            this._itemUpdatedEvents[i](sender, arg);
        }
    }
}

var __ZextendersDynamicEventsInstance = null;
Zextenders.DynamicEvents.get_instance = function()
{
    if (__ZextendersDynamicEventsInstance == null)
            __ZextendersDynamicEventsInstance = new Zextenders.DynamicEvents();
        return __ZextendersDynamicEventsInstance;
}
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();