
Ext.namespace('cmv.menu');
cmv.menu.json=undefined;
cmv.menu.wrc = new Ext.Panel({
  region:'center',
  id: 'center-region-container',
  header: false,
  collapsible: false,
  unstyled: false,
  split: false,
  border: false,
  autoScroll: true,
  layout:'card'
});

cmv.menu.proxy = new Ext.data.HttpProxy({
  api: {
    read : 'json/menu.php'
  }
});
cmv.menu.store = new Ext.data.JsonStore({
  // store configs
  autoDestroy: true,
  autoLoad: true,
  proxy: cmv.menu.proxy,
  remoteSort: false,
  storeId: 'menu',

  // reader configs
  idProperty: 'id',
  root: 'data',
  totalProperty: 'total',
  fields: [{
    name: 'id',
    type: 'int'
  }, {
    name: 'Text'
  }, {
    name: 'parentid',
    type: 'int'
  },{
    name: 'order',
    type: 'int'
  },{
    name: 'secure',
    type: 'int'
  }],
  listeners:{
    load: {
      fn: function(store, record, operation){
        cmv.title.sponsorStore.load({
          scope:cmv.menu.panel
        });
        cmv.menu.store.each(cmv.menu.addText);
        btb = cmv.menu.panel.getBottomToolbar();
        btb.addItem('->');
        btb.addText({
          text:'',
          id:'cmvmenuloginname'
        });
        btb.addItem({
          xtype:'tbseparator',
          hidden: true,
          id:'cmvloginseparator'
        });
        btb.addButton({
          text:'Log ind',
          id:'cmvmenulogin',
          listeners:{
            click: {
              fn: cmv.menu.login
            }
          }
        });
      }
    }
  }
});

cmv.menu.panel = new Ext.Panel(
{
  header: false,
  margins: '0 5 0 5',
  collapsible: false,
  split: true,
  unstyled: false,
  height: 126,
  border: false,
  layout: 'hbox',
  defaults:{
    border:false,
    header:false
  },
  bbar:[{
    border:true
  }]
})

cmv.menu.addText = function(record) {
  if(record.get('parentid')=='')
  {
    bt = new Ext.Button({
      hidden: record.get('secure')>0,
      text:record.get('Text'),
      id: 'cmvmenubutton'+record.get('id'),
      menu:new Ext.menu.Menu({
        id:'cmvmenu'+record.get('id')
      })
    });
    cmv.menu.panel.getBottomToolbar().addButton(bt);
  }
  else
  {   //Is this menu item referenced and thus a submenu?
    if(cmv.menu.store.find('parentid',record.get('id'))!=-1)
    {
      Ext.getCmp('cmvmenu'+record.get('parentid')).addItem({
        text:record.get('Text'),
        menu: new Ext.menu.Menu({
          id:'cmvmenu'+record.get('id')
        })
      });

    }
    else
    {
      var prefix='cmvmenuitem';
      if(record.get('id')>1908&&record.get('id')<3000)//Championship id
        prefix='champscmvmenuitem';
      if(record.get('id')>3000)//galleri id
        prefix='';
      Ext.getCmp('cmvmenu'+record.get('parentid')).addItem({
        text:record.get('Text'),
        id: prefix+record.get('id'),
        itemId: record.get('id'),
        listeners:{
          click: {
            fn: function(item, e){
              if(item.getItemId()<3000)
                cmv.menu.wrc.layout.setActiveItem(item.getId()+'-panel');
              else //Picture gallery
              {
                cmv.gallery.panel.update(item);
                cmv.menu.wrc.layout.setActiveItem('cmvgallery-panel');
              }
            }
          }
        }
      });
    }
  }
}

cmv.menu.login = function(item, e){
  if(item.getText()=='Log ind')
  {
    cmv.menu.win.show();
  }
  else
  {
    item.setText('Log ind');
    cmv.menu.store.each(function(record){
      if(record.get('secure')>0)
        cmv.menu.panel.getBottomToolbar().items.get('cmvmenubutton'+record.get('id')).hide();
    })
    Ext.Ajax.request({
      url: 'secure/logout.php'
    });
    cmv.menu.panel.getBottomToolbar().items.get('cmvmenuloginname').setText('');
    cmv.menu.panel.getBottomToolbar().items.get('cmvloginseparator').hide();
    cmv.cloth.displayed=false;
    cmv.mypage.displayed=false;
    cmv.member.panel.displayed=false;
    cmv.menu.wrc.layout.setActiveItem(cmv.news.panel);
    Ext.getCmp('bestilgrundpakke').setValue(false);
    cmv.mypage.personalpanel.removeAll();
    cmv.mypage.orderspanel.removeAll();
    cmv.mypage.tilmeldingerpanel.removeAll();
    cmv.member.panel.removeAll();
    cmv.loggedin.store.reload();
  }
}
cmv.menu.loginform = new Ext.FormPanel({    
  labelWidth:80,
  url:'secure/login.php',
  frame:true,
  title:'Cykel Motion Viborg medlems log ind',
  defaultType:'textfield',
  monitorValid:true,
  items:[{
    fieldLabel:'Login',
    name:'loginUsername',
    allowBlank:false//,value:'20212116'
  },{
    fieldLabel:'Password',
    name:'loginPassword',
    inputType:'password',
    allowBlank:false//,value:'225897'
  }],
  buttons:[{
    text:'Log ind',
    formBind: true,
    type:'submit',
    handler:function(){
      cmv.menu.loginform.getForm().submit({
        method:'POST',
        waitTitle:'Forbinder',
        waitMsg:'Sender data...',

        success:function(form,action){
          
          cmv.menu.loginform.getForm().reset();
          cmv.menu.win.hide();
          cmv.menu.json = Ext.util.JSON.decode(action.response.responseText);
          cmv.loggedin.store.reload();
          cmv.menu.loginsucces();
        },

        failure:function(form, action){
          if(action.failureType == 'server'){
            obj = Ext.util.JSON.decode(action.response.responseText);
            Ext.Msg.alert('Log ind fejlet!', obj.errors.reason);
          }else{
            Ext.Msg.alert('Advarsel!', 'Ingen forbindelse til web serveren : ' + action.response.responseText);
          }
          cmv.menu.loginform.getForm().reset();
          cmv.menu.win.hide();
        }
      });
    }
  }]
});

cmv.menu.loginsucces = function(){
  cmv.menu.store.each(function(record){
    if((record.get('secure')&7)!=0&&cmv.menu.json.msg.bm||(record.get('secure')&4)!=0&&cmv.menu.json.msg.koreudvalg||record.get('secure')==1)
      cmv.menu.panel.getBottomToolbar().items.get('cmvmenubutton'+record.get('id')).show();
  });
  cmv.menu.panel.getBottomToolbar().items.get('cmvmenuloginname').setText(cmv.menu.json.msg.name);
  cmv.menu.panel.getBottomToolbar().items.get('cmvloginseparator').show();
  Ext.getCmp('cmvmenulogin').setText('Log ud');
}


cmv.menu.win = new Ext.Window({
  layout:'fit',
  width:300,
  height:150,
  closable: false,
  resizable: false,
  plain: true,
  border: false,
  items: [cmv.menu.loginform]
});
