
ASPxClientCallback = _aspxCreateClass(ASPxClientControl, {
    constructor: function(name) {
        this.constructor.prototype.constructor.call(this, name);
        this.CallbackComplete = new ASPxClientEvent();        
    },
    SendCallback: function(parameter) {        
        if(!_aspxIsExists(parameter)) parameter = "";
        this.CreateCallback(parameter);
    },
    OnCallback: function(dirtyResult) {
        var pos = dirtyResult.indexOf(__aspxCallBackSeparator);
        if (pos > -1) {
            var paramLength = parseInt(dirtyResult.substr(0, pos));
            var parameter = dirtyResult.substr(pos + __aspxCallBackSeparator.length, paramLength);
            var result = dirtyResult.substr(1 + pos + paramLength);
            this.CallbackComplete.FireEvent(this, new ASPxClientCallbackCompleteEventArgs(parameter, result));            
        }                
    }
});
ASPxClientCallbackCompleteEventArgs = _aspxCreateClass(ASPxClientEventArgs, {
    constructor: function(parameter, result){
        this.constructor.prototype.constructor.call(this);
        this.parameter = parameter;
        this.result = result;
    }
});