Ext.namespace("Optima");

Optima.ListPanel = Ext.extend(Ext.DataView,{
   autoHeight: true,
   overClass: 'over',
   itemSelector : "div.equipe",
   initComponent : function(){
      var membre = Ext.data.Record.create([
         {name: 'prenom'},
         {name: 'surnom'},
         {name: 'naissance',type:'date', dateFormat:'d/m/Y'},
         {name: 'emploi'},
         {name: 'job'},
         {name: 'qualite'},
         {name: 'defaut'},
         {name: 'img'},
         {name:"order",type:'int',sortType:Ext.data.SortTypes.asInt}
      ]);
      var st = new Ext.data.Store({
         sortInfo:{field: "order", direction: "ASC"},
         url: 'equipe.xml.php',
         autoLoad : true,
         reader : new Ext.data.XmlReader({
            record: "membre"
         }, membre),
         record: 'rows',
         listeners : {
            load : {fn:function() {
               /*
               this.el.repaint();
               this.buildOrder();*/
               Ext.get("equipe").repaint();
               Ext.getBody().repaint();
               
            },scope:this}
         }
      });
      Ext.apply(this,{
         store:st,
         height : 800,
         autoScroll : true,
         emptyText:"<h1>Pas de membres</h1>"
      });
      Ext.util.Format.ageRender = function(naissance){

         // Cette fonction retourne une chaîne de type :
         //  "15 ans et 6 mois"
         var m=new Date()
         var age=""; var age_a=0;var age_m=0;
         if (!Ext.isEmpty(naissance)&& naissance!=0) {
               if (naissance.getTime()>m.getTime()) {
                     age="Oups...";
               }
               age_a = m.getFullYear()-naissance.getFullYear();
               m.setYear(naissance.getYear());
               if ((naissance.getTime()>m.getTime())&&(naissance.getMonth()-m.getMonth()!=0)) {age_a--;}
               if (naissance.getMonth() >= m.getMonth()) {
                     age_m = 12 - (naissance.getMonth()-m.getMonth())
               } else {
                     age_m = (m.getMonth()-naissance.getMonth())
               }
               if (age_m==12) {age_m=0;}
               if (age_a==1) { age=age_a+" an"}
               if (age_a>1) { age=age_a+" ans"}
               if ((age_a>0)&&(age_m>0)) {age+=" et "}
               if (age_m>0) {age+=age_m+" mois"}
               if (age=="") { age="moins de 1 mois"}
         }
         return age;
      };
      Optima.ListPanel.superclass.initComponent.call(this);
      this.on("click",this.viewClick,this);
   },
   tpl : new Ext.XTemplate(
           '<tpl for=".">',
           '<div class="membre">',
             '<div class="titre">{prenom} dit {surnom}</div>',
              '<tpl if="this.isImg(img) == true">',
                  '<img src="./img/equipe/{img}" class="floatLeft" alt="equipe optima"/>',
              '</tpl>',
                  '<p><b>Age : </b>{[Ext.util.Format.ageRender(values.naissance)]}</p>',
                  '<p><b>Emploi : </b>{emploi}</p>',
                  '<p><b>Job nocturne : </b>{job}</p>',
                  '<p><b>Qualite : </b>{qualite}</p>',
                  '<p><b>Défaut : </b>{defaut}</p>',
           '</div>',
           '</tpl>',{
            isImg : function(img){
               return (img!=undefined && img!=null && img!="");
            }
           }
   )
});

Ext.onReady(function(){
	Ext.QuickTips.init();
      new Optima.ListPanel ({applyTo:"equipe"});
      
});