    // Helpers
    
    // Create Property
    Type.prototype._createGetter = function(fieldName)
    {
        return function()
        {
            return this[fieldName];
        }
    }

    Type.prototype._createSetter = function(fieldName)
    {
        return function(value)
        {
            this[fieldName] = value;
        }
    }
    
    Type.prototype.createProperty = function(propName)
    {
        var fieldName = "_" + propName;
        
        var getter = this._createGetter(fieldName);
        var setter = this._createSetter(fieldName);
        
        this.prototype["get_" + propName] = getter;
        this.prototype["set_" + propName] = setter;
    }

    // Create Event
    Type.prototype._createAddHandler = function(eventName)
    {
        return function(handler)
        {
            this.get_events().addHandler(eventName, handler);
        }
    }
    
    Type.prototype._createRemoveHandler = function(eventName)
    {
        return function(handler)
        {
            this.get_events().removeHandler(eventName, handler);
        }
    }

    Type.prototype.createEvent = function(eventName) 
    {          
        var addHandler = this._createAddHandler(eventName);
        var removeHandler = this._createRemoveHandler(eventName);
        this.prototype['add_' + eventName] = addHandler;
        this.prototype['remove_' + eventName] = removeHandler;
        
        if(!this.__events)
        {
            if(!this.inheritsFrom(Sys.Component))
            {
                this.prototype.get_events = function()
                {
                    if (!this._events)
                    {
                        this._events = new Sys.EventHandlerList();
                    }
                    
                    return this._events;
                }
            }
            this.prototype._raiseEvent = function(eventName, eventArgs)
            {
                var handler = this.get_events().getHandler(eventName);

                if (handler)
                {
                    if (!eventArgs)
                    {
                        eventArgs = Sys.EventArgs.Empty;
                    }
                    handler(this, eventArgs);
                }
            }
         
            this.__events = true;                                     
        }
    }
    
    // WebAjaxControls.Helpers.ControlBaseAjax
    Type.registerNamespace("WebAjaxControls.Helpers");
    
    WebAjaxControls.Helpers.ControlBaseAjax = function(element)
    {
        WebAjaxControls.Helpers.ControlBaseAjax.initializeBase(this, [element]);
    }
    
    WebAjaxControls.Helpers.ControlBaseAjax.prototype =
    {
        initialize : function()
        {
            WebAjaxControls.Helpers.ControlBaseAjax.callBaseMethod(this, "initialize");
        },
        
        dispose : function()
        {
            WebAjaxControls.Helpers.ControlBaseAjax.callBaseMethod(this, "dispose");
        }
    };
    
    WebAjaxControls.Helpers.ControlBaseAjax.registerClass("WebAjaxControls.Helpers.ControlBaseAjax", Sys.UI.Control);
    
    if (typeof (Sys) != "undefined")
    {    
        Sys.Application.notifyScriptLoaded();    
    }
