Ext.ns('energy');

energy.counterForm = Ext.extend(Ext.FormPanel,{
  frame:true,
  border:true,
  headerCfg:{cls:'x-panel-header-em2'},
  labelWidth:150
  ,buttons: [{text: 'Sauver'}]
  ,initComponent:function() {
     var config = {
       layout:'form'
      ,buttonAlign:'right'
      ,frame:false
      ,border:true
      ,items:[{
         title:'Compteur energie : '
        ,layout:'form'
        ,xtype:'fieldset'
        ,border:false
        ,autoHeight:true
        ,defaultType:'textfield'
        ,bodyStyle:'padding:4px'
        ,items:[{
          xtype:'TextField1'
          ,name:'energycountername'
          ,fieldLabel:'Nom du compteur energie'
          ,allowBlank:false
        },{
           xtype:'TextField1'
          ,name:'defaultenergysuppliername'
          ,fieldLabel:'Nom du Fournisseur par défaut'
          ,allowBlank:true
        },{
          name:'energy'
          ,valueField:'energy_id'
          ,hiddenName :'energy_id'
          ,displayField: 'energy_name'
          ,fieldLabel:'energie'
          ,allowBlank:false
          ,xtype:'EMBrowserCBenergytype'
        },{
          name:'energyusagetype'
          ,valueField:'usagetype_id'
          ,hiddenName :'usagetype_id'
          ,displayField: 'usagetype_name'
          ,fieldLabel:'type d\'utilisation'
          ,allowBlank:false
          ,xtype:'EMBrowserCBenergyusagetype'
        },{
          name: 'division',
          xtype: 'EMBrowserCBenergydivision',
          valueField:'division_id',
          hiddenName :'division_id',
          displayField: 'division_name',
          fieldLabel:'Ce compteur peut aussi être affiché dans'
        },{
          xtype: 'radio',
          checked: true,
          fieldLabel: 'Type de tarif',
          id:'simpleRadio',
          boxLabel: 'Simple',
          name: 'doubletarif'
        },{
          xtype: 'radio',
          hideLabel: false,
          labelSeparator: '',
          id:'doubleRadio',
          boxLabel: 'Double',
          name: 'doubletarif'
        }]
      }]
    };
     // apply config
    Ext.apply(this, Ext.apply(this.initialConfig, config));
    // call parent initComponent
    energy.counterForm.superclass.initComponent.call(this);
  } // end of function initComponent
  ,onRender:function() {
    // call parent
    energy.counterForm.superclass.onRender.apply(this, arguments);
    this.getField("energy").on("select",this.energy_usagetypeCBrefresh,this);
    this.getField("energy").on("select",this.displayDoubleTarif,this);
    this.on("afterlayout",this.displayDoubleTarif,this,{single: true});
    this.on("afterlayout",this.divisionCBrefresh,this,{single: true});
  } // eo function onRender
  ,init:function (tn_id){
    this.site_tn_id = tn_id;
  }
  ,isValid:function (){
    return(this.getField('energycountername').isValid() && this.getField('defaultenergysuppliername').isValid()
      && this.getField('energy').isValid() && this.getField('energyusagetype').isValid());
  }
  ,getField:function(fieldName){
    switch(fieldName) {
      case 'energycountername':
        return this.getForm().items.itemAt(0);
        break;
      case 'defaultenergysuppliername':
        return this.getForm().items.itemAt(1);
        break;
      case 'energy':
        return this.getForm().items.itemAt(2);
        break;
      case 'energyusagetype':
        return this.getForm().items.itemAt(3);
        break;
      case 'division':
        return this.getForm().items.itemAt(4);
        break;
      case 'simpletarifradio1':
        return this.getForm().items.itemAt(5);
        break;
      case 'simpletarifradio2':
        return this.getForm().items.itemAt(6);
        break;
      default:
        return this.getForm().findField(fieldName);
        break;
    }
  }
  ,setField:function(fieldName,value){
    this.getField(fieldName).setValue(value);
  }
  ,energy_usagetypeCBrefresh:function() {
    this.getField("energyusagetype").refresh(this.getField("energy").getValue());
  }
  ,divisionCBrefresh:function() {
    this.getField("division").refresh(this.site_tn_id);
  }
  ,displayDoubleTarif:function() {
    r1 = this.getForm().items.itemAt(5);
    r2 = this.getForm().items.itemAt(6);
    if(this.getField("energy").getValue() != 11) {
      r1.hide();
      r2.hide();
    } else {
      r1.show();
      r2.show();
    }
  }
});

Ext.reg('energycounterform', energy.counterForm);

