Ext.namespace('cmv.acts');

cmv.acts.actsfields = [{
  name: 'idx',
  type: 'int'
}, {
  name: 'dato',
  type: 'date',
  dateFormat: Date.patterns.ISO8601Long
}, {
  name: 'kategori',
  type: 'int'
},{
  name: 'overskrift'
}, {
  name: 'artikel'
},{
  name: 'link1'
}, {
  name: 'link1_tekst'
}, {
  name: 'link1_frame'
},{
  name: 'link2'
}, {
  name: 'link2_tekst'
}, {
  name: 'link2_frame'
}];

cmv.acts.helperfields = [{
  name: 'idx',
  type: 'int'
},{
  name: 'navn'
},{
  name: 'mid',
  type: 'int'
}];

cmv.acts.routesfields = [{
  name: 'idx',
  type: 'int'
}];

cmv.acts.sponsorfields = [{
  name: 'Aktivitetsid',
  type: 'int'
},{
  name: 'idx',
  type: 'int'
},{
  name: 'web'
},{
  name: 'name'
},{
  name: 'Firma'
},{
  name: 'Vej'
},{
  name: 'Postby'
},{
  name: 'startsted',
  type: 'boolean'
},{
  name: 'Distance',
  type: 'int'
}];

cmv.acts.Panel = Ext.extend(cmv.news.RawPanel,{
  helpersstore: undefined,
  sponsorstore: undefined,
  showmap: false,
  constructor: function(config){
    config = Ext.apply({
      fbar:[]
    }, config);
    cmv.acts.Panel.superclass.constructor.call(this, config);
    this.setTitle((this.record.get('dato').format('Y')!='2038'?Ext.util.Format.capitalize(this.record.get('dato').format(Date.patterns.LongDateTime))+': ':'')+this.record.get('overskrift'));
    sponsorhtml='';
    idxstart=null;
    this.addHelper(this.record.get('idx'));
    if(this.record.get('kategori')===2)
    {      
      this.addSponsorrace(this);            
    }
    else
      this.add(new Ext.Panel({
        html:this.record.get('artikel')
      }));
    if(this.showmap)
    {
      this.getBottomToolbar().addItem(new Ext.Toolbar.Button({
        tooltip: 'Se ruteinfo',
        overflowText: 'Se ruteinfo',
        iconCls: 'x-tbar-show-map',
        disabled: false,
        handler: function(){
          new cmv.Gmap.Window({
            ruteid:this.record.get('idx'),
            title:'Ruteinfo: '+this.record.get('overskrift')+', '+this.record.get('dato').format(Date.patterns.LongDateTime),
            sponsorrace:this.record.get('kategori')===2
          }).show()
        },
        scope: this
      }));
      /*VC
      this.getBottomToolbar().addItem(new Ext.Toolbar.Button({
        tooltip: 'Lav Viborg Classic rute',
        overflowText: 'Lav Viborg Classic rute',
        iconCls: 'x-tbar-show-map',
        disabled: false,
        handler: function(){
          new cmv.Gmap.VCWindow({
            ruteid:2001,
            title:'Viborg Classic',
            sponsorrace:false
          }).show()
        },
        scope: this
      }));//VC*/
    }
    if(Ext.isDefined(this.getBottomToolbar().items))
      this.getBottomToolbar().setVisible(true);
  },
  addHelper:function(idx)
  {
    this.helpersstore.filter('idx', idx, true, false);
    if(this.helpersstore.getCount()>0){
      helpers = new Array;
      helpers.push({
        xtype: 'button',
        tooltip: 'Se hjælper info',
        overflowText: 'Se hjælper info',
        iconCls: 'x-tbar-show-helpers',
        disabled: cmv.loggedin.store.getCount()==0,
        handler: function(){
          helpwin=new Ext.Window({
            modal:true,
            layout:'table',
            layoutConfig: {
              columns:3,
              tableAttrs: {
                cellspacing: 5
              }
            },
            defaults: {
              frame:true
            }
          })
          this.helpersstore.filter('idx', idx, true, false);
          this.helpersstore.each(function(rec){
            var record=cmv.member.helperstore.getAt(cmv.member.helperstore.findExact('id',rec.get('mid')));
            if(record.get('Photo'))
              cmv.member.pic='<img src="php/view_memberphoto.php?idx='+record.get('id')+'">';
            else
              cmv.member.pic='<img src="images/'+(record.get('kvinde')?'fe':'')+'male_silh.jpg">';
            helpwin.add({
              title:record.get('navn'),
              width:200,
              bbar:[{
                xtype:'tbtext',
                text:record.get('Vej')+"<br>"+record.get('Postby')+'<br>Tlf: '+record.get('Telefon')+"<br>Email: <a href='mailto:"+record.get('email')+"'>"+record.get('email')+"</a>"
              }],
              html:'<ul><li>'+cmv.member.pic+'</li></ul>'
            })
          });
          this.helpersstore.clearFilter(true);
          helpwin.show();
        },
        scope: this
      });
      var j=0;
      var k = this.helpersstore.getCount()-1;
      this.helpersstore.each(function(rec){
        helpers.push({
          xtype: 'tbtext',
          html:rec.get('navn')+((j++)<k?',':'')
        })
      })
      this.getBottomToolbar().add(helpers);
      this.helpersstore.clearFilter(true);
    }
  },
  addSponsorLogo:function(record)
  {
    idxstart=record.get('startsted')?record.get('idx'):idxstart;
    sponsorhtml+='<a href="http://'+record.get('web')+'" target="_blank"><img src="php/display_logo.php?idx='+record.get('idx')+'&size=large" title="'+record.get('name')+'" /></a>';
  },
  addSponsorrace:function(pnl)
  {
    sponsorhtml = '';
    pnl.sponsorstore.filter('Aktivitetsid',pnl.record.get('idx'),true,false);
    sponsorhtml+='<div align="center">';
    pnl.sponsorstore.each(this.addSponsorLogo);
    sponsorhtml+='</div><br>';
    pnl.sponsorstore.clearFilter(true);
    var startrecord=pnl.sponsorstore.getAt(pnl.sponsorstore.find('idx',idxstart));
    var fondo = pnl.record.get('overskrift')!="Sponsorløb";
    sponsorhtml+='Indskrivning fra kl. '+pnl.record.get('dato').add(Date.MINUTE,fondo?-30:-15).format(Date.patterns.Starttime)+' hos: ';
    sponsorhtml+='<b>'+startrecord.get('Firma')+', '+startrecord.get('Vej')+', '+startrecord.get('Postby')+'.</b><br>';
    if(pnl.record.get('artikel')!="")
      sponsorhtml+=pnl.record.get('artikel')+'<br>';
    else
    {
      if(fondo)
        sponsorhtml+='Samlet start kl. '+pnl.record.get('dato').format(Date.patterns.Starttime)+' med masterkørsel de første 15 km med 25 km/t.<br>';
      else
      {
        sponsorhtml+='Start C-ryttere kl. '+pnl.record.get('dato').format(Date.patterns.Starttime)+'<br>';
        sponsorhtml+='Start B-ryttere kl. '+pnl.record.get('dato').add(Date.MINUTE,+15).format(Date.patterns.Starttime)+'<br>';
        sponsorhtml+='Start A-ryttere kl. '+pnl.record.get('dato').add(Date.MINUTE,+30).format(Date.patterns.Starttime)+'<br>';
      }
      sponsorhtml+='Afmærket rute på '+startrecord.get('Distance')+' km.<br>';
      sponsorhtml+='Forfriskninger og pølser i klubben efter løbet.<br>';
    }
    sponsorhtml+='Pris kr. 20,-.<hr>Der skal anvendes cykelhjelm, tri-styr er forbudt og færdselsloven skal overholdes.'+(fondo?' Masterrytternes anvisninger skal følges.':'')+'<br>Cykel Motion Viborg forbeholder sig retten til at bortvise deltagere, der ikke lever op til dette.';
    pnl.add(new Ext.Panel({
      html:sponsorhtml
    }));
  }
})

Ext.reg('cmvactspanel', cmv.acts.Panel);
