ASPxClientCallbackPanel = _aspxCreateClass(ASPxClientControl, {
 constructor: function(name) {
  this.constructor.prototype.constructor.call(this, name);
  this.allowMultipleCallbacks = false;
 },
 GetContentElement: function() {
  var element = this.GetMainElement();
  return element.tagName == "TABLE" ? element.rows[0].cells[0] : element;
 },
 OnCallback: function(result) {
  _aspxSetInnerHtml(this.GetContentElement(), result);
 },
 DoBeginCallback: function(command){
  ASPxClientControl.prototype.DoBeginCallback.call(this, command);
  this.ShowLoadingPanel();
 },
 ShowLoadingPanel: function(){
  var element = this.GetContentElement();
  var mainElement = (element.tagName == "TD") ? this.GetMainElement() : element;
  var elementWidth = mainElement.style.width;
  var elementHeight = mainElement.style.height;
  var div = this.CreateLoadingDiv(element);
  if(div == null)
   element.innerHTML = "";
  if(div != null) {
   this.CreateLoadingPanelWithAbsolutePosition(element, mainElement);
  } else {
   if(elementWidth != "" && elementHeight != "")
    this.CreateLoadingPanelWithAbsolutePosition(element, mainElement);
   else
    this.CreateLoadingPanelInsideContainer(element);
  }
 },
 PerformCallback: function(parameter) {
  this.CreateCallback(parameter);
 }
});

