ASPxClientCloudControl = _aspxCreateClass(ASPxClientControl, {
 constructor: function(name){
  this.constructor.prototype.constructor.call(this, name);    
  this.ItemClick = new ASPxClientEvent();  
 },
 RaiseItemClick: function(itemElement, htmlEvent){
  var processOnServer = this.autoPostBack || this.IsServerEventAssigned("ItemClick");
  if(!this.ItemClick.IsEmpty()){
   var name = this.GetItemElementName(itemElement);
   var args = new ASPxClientCloudControlItemEventArgs(processOnServer, name, itemElement, htmlEvent);
   this.ItemClick.FireEvent(this, args);
   processOnServer = args.processOnServer;
  }
  return processOnServer;
 },
 OnControlClick: function(clickedElement, htmlEvent) {
  var itemElement = _aspxGetParentByClassName(clickedElement, __aspxItemClassName);  
  if(_aspxIsExists(itemElement)) {
   var processOnServer = this.RaiseItemClick(itemElement, htmlEvent);
   var hasItemLink = this.GetLinkElement(itemElement) != null;
   if(processOnServer && !hasItemLink) {
    var name = this.GetItemElementName(itemElement);
    this.SendPostBack("CLICK:" + name);
   }
  }
 }
});
ASPxClientCloudControlItemEventArgs = _aspxCreateClass(ASPxClientProcessingModeEventArgs, {
 constructor: function(processOnServer, name, htmlElement, htmlEvent){
  this.constructor.prototype.constructor.call(this, processOnServer);
  this.name = name;
  this.htmlElement = htmlElement;
  this.htmlEvent = htmlEvent;
 }
});
