text: /*!
   * Ext JS Library 3.2.0
   * Copyright(c) 2006-2010 Ext JS, Inc.
   * licensing@extjs.com
   * http://www.extjs.com/license
   */
  /**
   * @class Ext.form.RadioGroup
   * @extends Ext.form.CheckboxGroup
   * A grouping container for {@link Ext.form.Radio} controls.
   * @constructor
   * Creates a new RadioGroup
   * @param {Object} config Configuration options
   * @xtype radiogroup
   */
  Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, {
      /**
       * @cfg {Array} items An Array of {@link Ext.form.Radio Radio}s or Radio config objects
       * to arrange in the group.
       */
      /**
       * @cfg {Boolean} allowBlank True to allow every item in the group to be blank (defaults to true).
       * If allowBlank = false and no items are selected at validation time, {@link @blankText} will
       * be used as the error text.
       */
      allowBlank : true,
      /**
       * @cfg {String} blankText Error text to display if the {@link #allowBlank} validation fails
       * (defaults to 'You must select one item in this group')
       */
      blankText : 'You must select one item in this group',
      
      // private
      defaultType : 'radio',
      
      // private
      groupCls : 'x-form-radio-group',
      
      /**
       * @event change
       * Fires when the state of a child radio changes.
       * @param {Ext.form.RadioGroup} this
       * @param {Ext.form.Radio} checked The checked radio
       */
      
      /**
       * Gets the selected {@link Ext.form.Radio} in the group, if it exists.
       * @return {Ext.form.Radio} The selected radio.
       */
      getValue : function(){
          var out = null;
          this.eachItem(function(item){
              if(item.checked){
                  out = item;
                  return false;
              }
          });
          return out;
      },
      
      /**
       * Sets the checked radio in the group.
       * @param {String/Ext.form.Radio} id The radio to check.
       * @param {Boolean} value The value to set the radio.
       * @return {Ext.form.RadioGroup} this
       */
      onSetValue : function(id, value){
          if(arguments.length > 1){
              var f = this.getBox(id);
              if(f){
                  f.setValue(value);
                  if(f.checked){
                      this.eachItem(function(item){
                          if (item !== f){
                              item.setValue(false);
                          }
                      });
                  }
              }
          }else{
              this.setValueForItem(id);
          }
      },
      
      setValueForItem : function(val){
          val = String(val).split(',')[0];
          this.eachItem(function(item){
              item.setValue(val == item.inputValue);
          });
      },
      
      // private
      fireChecked : function(){
          if(!this.checkTask){
              this.checkTask = new Ext.util.DelayedTask(this.bufferChecked, this);
          }
          this.checkTask.delay(10);
      },
      
      // private
      bufferChecked : function(){
          var out = null;
          this.eachItem(function(item){
              if(item.checked){
                  out = item;
                  return false;
              }
          });
          this.fireEvent('change', this, out);
      },
      
      onDestroy : function(){
          if(this.checkTask){
              this.checkTask.cancel();
              this.checkTask = null;
          }
          Ext.form.RadioGroup.superclass.onDestroy.call(this);
      }
  
  });
  
  Ext.reg('radiogroup', Ext.form.RadioGroup);
  