cmv.cloth.displayed=false;

cmv.cloth.pic='';

cmv.cloth.personalstore = new Ext.data.JsonStore({
  // store configs
  autoDestroy: true,
  url: 'json/clothpersonal.php',
  remoteSort: true,
  storeId: 'cmvclothpersonal',
  // reader configs
  idProperty: 'id',
  root: 'data',
  totalProperty: 'total',
  fields: [{
    name: 'id',
    type: 'int'
  }, {
    name: 'navn'
  }, {
    name: 'vej'
  }, {
    name: 'postby'
  }, {
    name: 'bluse_sizeID',
    type: 'int'
  }, {
    name: 'blusemf_sizeID',
    type: 'int'
  },{
    name: 'bukser_sizeID',
    type: 'int'
  },{
    name: 'handsker_sizeID',
    type: 'int'
  },{
    name: 'stroemper_sizeID',
    type: 'int'
  },{
    name: 'sko_sizeID',
    type: 'int'
  },{
    name: 'Grundpakke',
    type: 'boolean'
  },{
    name: 'kvinde',
    type: 'boolean'
  },{
    name: 'Photo',
    type: 'boolean'
  }],
  listeners:{
    load: {
      fn: function(store, record, operation){
        if(!cmv.cloth.displayed)
        {
          var rec=store.getAt(0);
          if(rec.get('Photo'))
            cmv.cloth.pic='<img src="php/view_memberphoto.php?idx='+rec.get('id')+'">';
          else
            cmv.cloth.pic='<img src="images/'+(rec.get('kvinde')?'fe':'')+'male_silh.jpg">';
          Ext.fly('cmvclothpic').update(cmv.cloth.pic);
          cmv.cloth.personalcol1.get(0).setValue(rec.get('navn'));
          cmv.cloth.personalcol1.get(1).setValue(rec.get('vej'));
          cmv.cloth.personalcol1.get(2).setValue(rec.get('postby'));
          cmv.cloth.personalcol2.get(0).setValue(rec.get('bukser_sizeID'));
          cmv.cloth.personalcol2.get(1).setValue(rec.get('bluse_sizeID'));
          cmv.cloth.personalcol2.get(2).setValue(rec.get('blusemf_sizeID'));
          cmv.cloth.personalcol3.get(0).setValue(rec.get('sko_sizeID'));
          cmv.cloth.personalcol3.get(1).setValue(rec.get('stroemper_sizeID'));
          cmv.cloth.personalcol3.get(2).setValue(rec.get('handsker_sizeID'));
          cmv.cloth.store.each(function(rec){
            var perrec=store.getAt(0);
            var vn = rec.get('Varenummer');
            if(vn!=1)
            {
              var sizecode=cmv.cloth.getSizeCode(rec.get('sizecode'));
              Ext.getCmp(sizecode+'size'+vn).setValue(perrec.get(sizecode+'_sizeID'));
              if(rec.get('grundpakke'))
                Ext.getCmp('gp'+sizecode+'size'+vn).setValue(perrec.get(sizecode+'_sizeID'));
              if(rec.get('sizecode')==2)
              { //Sæt skind på bukser, pånær dem uden skind
                if(rec.get('item').indexOf('uden skind')==-1)
                  Ext.getCmp('skind'+vn).setValue(perrec.get('kvinde')?1:0);
                if(rec.get('grundpakke'))
                  Ext.getCmp('gpskind'+vn).setValue(perrec.get('kvinde')?1:0);
                //Altid seler på Lang buks
                if(rec.get('item').indexOf('Lang')!=-1)
                  Ext.getCmp('seler'+vn).setValue(1);
                else
                  Ext.getCmp('seler'+vn).setValue(perrec.get('kvinde')?0:1);
                if(rec.get('grundpakke'))
                  Ext.getCmp('gpseler'+vn).setValue(perrec.get('kvinde')?0:1);
              }
            }
          })
          cmv.cloth.displayed=true;
          cmv.cloth.orderPanel.get(0).setGrundpakke(!this.getAt(0).get('Grundpakke'));
        }
      }
    }
  }
});
//This store holds the available cloth items
cmv.cloth.store = new Ext.data.JsonStore({
  // store configs
  autoDestroy: true,
  url: 'json/cloth.php',
  remoteSort: true,
  storeId: 'cmvcloth',

  // reader configs
  idProperty: 'id',
  root: 'data',
  totalProperty: 'total',
  fields: [{
    name: 'id',
    type: 'int'
  }, {
    name: 'item'
  }, {
    name: 'price',
    type: 'int'
  }, {
    name: 'grundpakke',
    type: 'boolean'
  },{
    name: 'sizecode',
    type: 'int'
  },{
    name: 'seler',
    type: 'boolean'
  },{
    name: 'Varenummer',
    type: 'int'
  }],
  listeners:{
    load: {
      fn: function(store, record, operation){
        cmv.cloth.personalpic = new Ext.Panel({
          xtype:'box',
          width:'100px',
          id:'cmvclothpic'
        });
        cmv.cloth.personalcol1 = new Ext.Panel({
          layout: 'form',
          columnWidth:.33,
          defaults:{
            xtype:'displayfield',
            anchor:'95%'
          },
          items:[{
            fieldLabel:'Navn'
          },{
            fieldLabel:'Vej'
          },{
            fieldLabel:'Postnr og By'
          }]
        });
        cmv.cloth.personalcol2 = new Ext.Panel({
          layout: 'form',
          columnWidth:.33,
          defaults:{
            xtype:'cmvclothsizecombobox',
            formButton:cmv.cloth.sizespanel.buttons[0],
            clothid:'',
            store: cmv.cloth.storeClothSize
          },
          items:[{
            fieldLabel:'Str. bukser',
            clothtype:'bukser'
          },{
            fieldLabel:'Str. bluser',
            clothtype:'bluse'
          },{
            fieldLabel:'Str. bluser microfiber',
            clothtype:'blusemf'
          }]
        });
        cmv.cloth.personalcol3 = new Ext.Panel({
          layout: 'form',
          columnWidth:.33,
          defaults:{
            xtype:'cmvclothsizecombobox',
            formButton:cmv.cloth.sizespanel.buttons[0],
            clothid:''
          },
          items:[{
            fieldLabel:'Str. sko',
            clothtype:'sko',
            store: cmv.cloth.storeShoeSize
          },{
            fieldLabel:'Str. strømper',
            clothtype:'stroemper',
            store: cmv.cloth.storeSockSize
          },{
            fieldLabel:'Str. handsker',
            clothtype:'handsker',
            store: cmv.cloth.storeGloveSize
          }]
        });
        cmv.cloth.personalpanel = new Ext.Panel({
          layout:'column',
          border:false,
          defaults:{
            border:false,
            padding: '5',
            labelWidth:120
          },
          items:[cmv.cloth.personalpic,cmv.cloth.personalcol1,cmv.cloth.personalcol2,cmv.cloth.personalcol3]
        });
        cmv.cloth.sizespanel.add(cmv.cloth.personalpanel);

        cmv.cloth.orderPanel=new Ext.Panel({
          layout:'hbox',
          layoutconfig:{
            align:'stretch'
          },
          items:[new cmv.cloth.FormPanel({
            flex:2,
            title:'Sammensæt ordre',
            iconCls: 'icon-form',
            layout:'fit',
            height:400,
            items:[new Ext.TabPanel({
              deferredRender: false,
              activeTab:0,
              defaults:{
                frame:true,
                xtype:'cmvclothformtab'
              },
              items:[{
                type:3,
                items:[{
                  html:'<b>Vejledning</b><br>Grundpakken skal købes, før du kan bestilles andre dele.<hr>'
                },new Ext.form.Checkbox({
                  boxLabel:'Bestil '+cmv.cloth.store.getAt(cmv.cloth.store.find('id',1)).get('item')+' til '+Ext.util.Format.dkMoney(cmv.cloth.store.getAt(cmv.cloth.store.find('id',1)).get('price')),
                  name:'bestilgrundpakke',
                  id:'bestilgrundpakke',
                  listeners:{
                    check:{
                      fn: function(checkbox, status){
                        var parent=this.ownerCt.ownerCt;
                        for(var i=1;i<4;i++)
                          status?parent.get(i).enable():parent.get(i).disable();
                        if(status)
                        {
                          var rec = cmv.cloth.store.getAt(cmv.cloth.store.find('id',1));
                          Ext.getCmp('clothordergrid').addData([1,rec.get('item'),'-',rec.get('price'),rec.get('Varenummer')]);
                          cmv.cloth.store.filter({
                            fn:function(rec){
                              return rec.get('grundpakke')&&rec.get('Varenummer')!=1;
                            }
                          });
                          cmv.cloth.store.each(function(rec){
                            var vn=rec.get('Varenummer');
                            var sizecode='gp'+cmv.cloth.getSizeCode(rec.get('sizecode'))+'size';
                            var size=Ext.getCmp(sizecode+vn).getRawValue();
                            var text=rec.get('item');
                            if(rec.get('sizecode')==2)
                              text+=', '+Ext.getCmp('gpseler'+vn).getRawValue()+', '+Ext.getCmp('gpskind'+vn).getRawValue();
                            Ext.getCmp('clothordergrid').addData(['-',text,size,-rec.get('price'),vn]);
                          })
                          cmv.cloth.store.clearFilter();
                        }
                        else
                          Ext.getCmp('clothordergrid').clearData();
                      }
                    }
                  }
                })]
              },{
                type:1,
                grundpakke:false
              },{
                type:2,
                grundpakke:false
              },{
                type:0,
                grundpakke:false
              }]
            })],
            buttons: [{
              text: 'Bestil',
              id: 'clothorderbutton',
              disabled: true,
              handler: function(){
                if(cmv.cloth.orderPanel.get(0).getForm().isValid()){
                  Ext.Msg.confirm('Ønsker du at afgive denne ordre?','',
                    cmv.cloth.orderProcessResult)
                }
              }
            }]
          }),new cmv.cloth.OrderGridPanel({
            width:450,
            title:'Ordre oversigt',
            iconCls: 'icon-grid',
            id:'clothordergrid'
          })]
        });

        cmv.cloth.panel = new Ext.Panel(
        {
          title:'Bestilling af klubtøj',
          id:'cmvmenuitem21-panel',
          iconCls: 'icon-form',
          margins: '0 5 0 5',
          collapsible: false,
          autoScroll: true,
          cmargins: '0 5 0 5', // adjust top margin when collapsed
          layout: 'auto',
          split: false,
          border: false,
          defaults:{
            border:false,
            frame:true
          },
          items: [cmv.cloth.sizespanel,cmv.cloth.orderPanel],
          listeners:{
            activate: {
              fn: function(panel){
                cmv.cloth.personalstore.load();
              }
            }
          }
        });
        cmv.menu.wrc.add(cmv.cloth.panel);

        cmv.cloth.panel.doLayout();
      }
    }
  }
});

cmv.cloth.storeClothSize = new cmv.cloth.storeSize({
  type:'bukser',
  autoLoad: true,
  listeners:{
    load: {
      fn: function(store, record, operation){
        cmv.cloth.storeSockSize.load();
      }
    }
  }
})

cmv.cloth.storeSockSize = new cmv.cloth.storeSize({
  type:'stroemper',
  listeners:{
    load: {
      fn: function(store, record, operation){
        cmv.cloth.storeShoeSize.load();
      }
    }
  }
})

cmv.cloth.storeShoeSize = new cmv.cloth.storeSize({
  type:'sko',
  listeners:{
    load: {
      fn: function(store, record, operation){
        cmv.cloth.storeGloveSize.load();
      }
    }
  }
})

cmv.cloth.storeGloveSize = new cmv.cloth.storeSize({
  type:'handsker',
  listeners:{
    load: {
      fn: function(store, record, operation){
        cmv.cloth.store.load();
      }
    }
  }
})

cmv.cloth.sizespanel = new Ext.FormPanel(
{
  title:'Personlige data',
  iconCls: 'icon-form',
  margins: '0 5 0 5',
  collapsible: true,
  autoScroll: true,
  cmargins: '0 5 0 5', // adjust top margin when collapsed
  layout: 'auto',
  //unstyled: false,
  split: false,
  items:{
    html:'<b>Vejledning</b><br>Her kan du se de størrelse, klubben har registreret du anvender. Felter med <i>Vælg størrelse</i> betyder at klubben ikke kender din størrelse.<br>Tryk på <i>Gem dine størrelser</i>, når du har angivet dine ændringer.<hr>'
  },
  buttons: [{
    text: 'Gem dine størrelser',
    id: 'Gemsizesbutton',
    disabled: true,
    handler: function(){
      if(cmv.cloth.sizespanel.getForm().isValid()){
        Ext.Msg.confirm('Ønsker du at opdatere dine størrelser?','',
          cmv.cloth.sizesProcessResult)
      }
    }
  }]
});

cmv.cloth.sizesProcessResult=function(btn)
{
  if(btn=='yes')
  {
    cmv.cloth.sizespanel.getForm().submit({
      url:'json/saveclothpersonal.php',
      success:function(form,action){
        Ext.Msg.alert('Opdatering OK', action.result.msg);
        cmv.cloth.personalstore.reload();
      },
      failure:function(form,action){
        Ext.Msg.alert('Fejl: Dine størrelser er ikke opdateret', action.result.msg);
      },
      clientValidation : false
    })
  }
}
cmv.cloth.orderProcessResult=function(btn)
{
  if(btn=='yes')
  {
    cmv.cloth.orderPanel.get(0).getForm().submit({
      url:'json/saveorder.php',
      success:function(form,action){
        Ext.Msg.alert('Ordren er registreret', action.result.msg);
        cmv.cloth.displayed=false;
        Ext.getCmp('bestilgrundpakke').setValue(false);
        cmv.cloth.personalstore.reload();
      },
      failure:function(form,action){
        Ext.Msg.alert('Fejl: Din ordre kunne ikke gemmes', action.result.msg);
      },
      clientValidation : false
    })
  }
}
