(function(){ 
  var loader = new YAHOO.util.YUILoader({ 
  base: '', 
  require: ['button','datatable'], 
  loadOptional: false, 
  combine: true, 
  filter: 'MIN', 
  allowRollup: true, 
  onSuccess: function(){ 
    YAHOO.util.Dom.addClass(document.body,'js');
    var ds = new YAHOO.util.DataSource(
      YAHOO.util.Dom.get('detailmedals')
    );
    ds.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;

/* countries */
    if(YAHOO.util.Dom.hasClass('dt','country')){
      ds.responseSchema = {
        fields: [
          {key:'year', parser:'string'},
          {key:'city', parser:'string'},
          {key:'sport', parser:'string'},
          {key:'discipline', parser:'string'},
          {key:'gender', parser:'string'},
          {key:'type', parser:'string'}
        ]
      };
      var mc = [
        {key:'year',label:'Year',sortable:true},
        {key:'city',label:'City',sortable:true},
        {key:'sport',label:'Sport',sortable:true},
        {key:'discipline',label:'Discipline', sortable:true},
        {key:'gender',label:'Gender',sortable:true},
        {key:'type',label:'Type',sortable:true}
      ];
    } 

/* years */
    if(YAHOO.util.Dom.hasClass('dt','year')){
      ds.responseSchema = {
        fields: [
        {key:'sport', parser:'string'},
        {key:'discipline', parser:'string'},
        {key:'country', parser:'string'},
        {key:'gender', parser:'string'},
        {key:'type', parser:'string'}
        ]
      };
      var mc = [
        {key:'sport',label:'Sport',sortable:true},
        {key:'discipline',label:'Discipline', sortable:true},
        {key:'country',label:'Country',sortable:true},
        {key:'gender',label:'Gender',sortable:true},
        {key:'type',label:'Type',sortable:true}
      ];
    }

/* sports or discipline */
    if(YAHOO.util.Dom.hasClass('dt','sports') || 
       YAHOO.util.Dom.hasClass('dt','discipline')){
      ds.responseSchema = {
        fields: [
          {key:'year', parser:'string'},
          {key:'city', parser:'string'},
          {key:'sport', parser:'string'},
          {key:'discipline', parser:'string'},
          {key:'country', parser:'string'},
          {key:'gender', parser:'string'},
          {key:'type', parser:'string'}
        ]
      };
      var mc = [
        {key:'year',label:'Year',sortable:true},
        {key:'city',label:'City',sortable:true},
        {key:'sport',label:'Sport',sortable:true},
        {key:'discipline',label:'Discipline', sortable:true},
        {key:'country',label:'Country',sortable:true},
        {key:'gender',label:'Gender',sortable:true},
        {key:'type',label:'Type',sortable:true}
      ];
    }

/* medals */
    if(YAHOO.util.Dom.hasClass('dt','medals')){
      ds.responseSchema = {
        fields:[
          {key:'country', parser:'string'},
          {key:'all', parser:'number'},
          {key:'gold', parser:'number'},
          {key:'silver', parser:'number'},
          {key:'bronze', parser:'number'},
        ]
      };
      var mc = [
        {key:'country',label:'Country',sortable:true},
        {key:'all',label:'All',sortable:true},
        {key:'gold',label:'Gold',sortable:true},
        {key:'silver',label:'Silver',sortable:true},
        {key:'bronze',label:'Bronze',sortable:true}
      ];
    }

    var dt = new YAHOO.widget.ScrollingDataTable(
      'dt',mc,ds,{height:'20em'}
    );
    } 
  }); 
  loader.insert(); 
})();


