/*
*
* Objet de construction des composantes HTML
*
*/
var contents = {
    /** Vars **/
    name                    : 's2tWare-contents',
    id                      : '#s2tWare-contents',
    classe                  : '#s2tWare-contents .tabs',
    list                    : '#s2tWare-contents .list',
    width                   : false,
    height                  : false,
    /** méthode variable **/
    idClicked               : false,
    /** lists **/
    listHeight              : 7,
    lastIdLoaded            : "row_lastSounds_a",
    
    /** Contruction **/
    init: function () {
        this.construct(s2tWare.id);
        this.constructTabs();
        this.loadSoundList('row_lastSounds_a');
        this.resize();
        $j(this.id).fadeIn()
    },
    construct: function(parent) {
       var HTML = '<div id="' + this.name + '"><div class="tabs"></div><div class="list"></div></div>';
       $j(parent).prepend(HTML);
    },
    constructTabs: function () {
        var tabs = [
                {display: 'Navigation', id: 'nav', classe: 'off'},
                
                {display: 'Derniers sons', id: 'lastSounds', classe: 'active '},
        ];

          if(s2tWare.isUser) {
            tabs.push( {display: 'Mes sons', id: 'profil', classe: 'off decal5'},{display: 'Son à écouter', id: 'delayedSounds', classe: 'off'})
        }

        var t = "";
        for (i=0;i<tabs.length;i++)
        {
          t += "<a href='#' class='tabsCat " + tabs[i].classe + "' id='" + tabs[i].id + "'>" + tabs[i].display + "</a>";
        }

       $j(this.id + ' .tabs').append(t);
     },
    resize: function() {
         var me = this;
         $j(this.id).css({
                height: function(){
                   me.height = (s2tWare.height - playZone.height) - (s2tWare.margin * 3)
                   return me.height  + "px";
                },
                width: function() {
                   me.width = (s2tWare.width/2) - (s2tWare.logoWidth/2) - (s2tWare.margin * 3)
                   return me.width + "px";
                },
                bottom: function (){
                   var posi = s2tWare.margin;
                   return posi + 'px'
                },
                right: function (){
                   var posi = s2tWare.margin;
                   return posi + 'px'
                }
            });
            me.listHeight = this.height - 132;
            $j(me.id +' .bDiv').height(me.listHeight)
    },
    loadCatsContent: function (id) {
    me = this;
    switch (id) {
       case "nav":
           if (me.lastIdLoaded) {
               me.loadSoundList(me.lastIdLoaded);
               me.sortTab(id)
           }
           break;
       case "lastSounds":
              me.loadSoundList('row_lastSounds_a');
              me.sortTab(id);
              break;
       case "delayedSounds":
              me.loadSoundList('row_delayedSounds_me');
              me.sortTab(id);
              break;
       case "profil":
              me.loadSoundList('row_member_me');
              me.sortTab(id);
              break;
    }
    },
    sortTab: function (id) {
        $j(me.id + " .tabs a").removeClass('active').removeClass('off');
        $j(me.id + " .tabs a").addClass('off');
        $j(me.id + " #" + id ).removeClass('off').addClass('active');
    },
    loadSoundList: function(id) {
        me = this;
        this.unloadList();
        if(id != "row_lastSounds_a") {
        me.lastIdLoaded = id;
        }
        var idSplit = id.split('_');
        var idLink = idSplit["2"];
        var typeLink = idSplit["1"];
        var sortn;
        var sorto;

        switch (typeLink) {
            case "member":
                 arrayCols =  [
                                    {display: 'Titre', name: 'filetitle', sortable: false, align: 'left'},
                                    {display: 'Catégorie', name: 'categ', sortable: false, align: 'right'},
                                    {display: 'Type', name: 'type', sortable: false, align: 'left'},
                                    {display: 'Taille', name: 'taille', sortable: false, align: 'left'},
                                    {display: 'D/L', name: 'downloads', sortable: false, align: 'center'},
                                   
                                 ];
                  arraySearch = [
                                    {display: 'Titre', name : 'e.filetitle', isdefault: true},
                                    {display: 'Catégorie', name : 'c1.name', isdefault: false},
                                    {display: 'Type', name : 'c2.name', isdefault: false},
    				];
                 sortn = 'filetitle';
                 sorto = 'asc';
                 me.sortTab('nav');
                break;
                
            case "playlist":
                 arrayCols =  [
                                    {display: 'Titre', name: 'titre', sortable: false, align: 'left'},
                                    {display: 'Membre', name: 'member', sortable: false, align: 'center'},
                                    {display: 'Catégorie', name: 'categorie', sortable: false, align: 'right'},
                                    {display: 'Type', name: 'type', sortable: false, align: 'left'},
                                    {display: 'Taille', name: 'size', sortable: false, align: 'left'},
                                 ];
                  arraySearch = [
                                    {display: 'Titre', name : 'e.filetitle', isdefault: true},
                                    {display: 'Catégorie', name : 'c1.name', isdefault: false},
                                    {display: 'Type', name : 'c2.name', isdefault: false},
                                    {display: 'Member', name : 'u.username', isdefault: false},
    				];
                 sortn = 'pi.positionId';
                 sorto = 'asc';
                 me.sortTab('nav');
                break;
            default:
                 arrayCols =  [
                                    {display: 'Titre', name: 'titre', sortable: true, align: 'left'},
                                    {display: 'Membre', name: 'member', sortable: true, align: 'center'},
                                    {display: 'Taille', name: 'size', sortable: true, align: 'left'},
                                    {display: 'D/L', name: 'downloads', sortable: true, align: 'center'},
                             ]
               arraySearch = [
                                    {display: 'Titre', name : 'e.filetitle', isdefault: true},
                                    {display: 'Membre', name : 'u.username', isdefault: false},

                                ];
                sortn = 'e.submitdate';
                sorto = 'desc';
                me.sortTab('nav');
                break;
         case "lastSounds":
                 arrayCols =  [
                                    {display: 'Titre', name: 'titre', sortable: false, align: 'left'},
                                    {display: 'Membre', name: 'member', sortable: false, align: 'center'},
                                    {display: 'Taille', name: 'size', sortable: false, align: 'left'},
                                    {display: 'D/L', name: 'downloads', sortable: false, align: 'center'},
                             ]
               arraySearch = [
                                    {display: 'Titre', name : 'e.filetitle', isdefault: true},
                                    {display: 'Membre', name : 'u.username', isdefault: false},

                                ];
                sortn = 'e.submitdate'
                sorto = 'desc'
                break;

        }
        $j(me.list).flexigrid ({
			title: 'Sons',
			url: s2tWare.comUrl + 'showSounds&source=' + typeLink + '&idSource=' + idLink,
			dataType: 'json',
			// Définition des colonnes
			colModel: arrayCols,
                        searchitems : arraySearch,
                        sortname: sortn,
			sortorder: sorto,
                        options: true,
			usepager: true,
			singleSelect: true,
			useRp: true,
			rp: 15,
			showTableToggleBtn: false,
			width: me.width,
			height: parseInt(me.listHeight),
                        onSuccess: function () {
                            if(typeLink == 'playlist') {
                                $j(me.list + ' tbody').sortable({
                                    placeholder: 'highlight',
                                    axis: 'y',
                                    cursor: 'move',
                                    revert: true,
                                    forceHelperSize: true,
                                    update: function() {
                                        $j(me.list + ' tbody tr').addClass('erow');
                                        $j(me.list + ' tbody tr:even').removeClass('erow');
                                        var order = $j(me.list + ' tbody').sortable('serialize');
                                        $j.post(s2tWare.comUrl + 'sortPlaylist&idList='+idLink,order);
                                    }
                                });
                             }else{
                             $j( me.id + " .list tr").draggable({
                                 helper: 'clone',iframeFix: true,revert: true,
                                 zIndex: 500000, appendTo: 'body', cursor: 'move',
                                 cursorAt: {left: 3},  opacity: 0.6 });
                            }
                        }
	})
        this.resize();
       
    },
    unSelectTr: function(type) {
        $j('#s2tWare-'+type+' .trSelected').removeClass('trSelected');
    },
    unloadList: function(){
        var me = this;
        if($j(me.id +' .flexigrid').size()) {
            $j(me.id +' .flexigrid').remove();
            $j(me.id).append('<div class="list"></div>');
    }
  }
}

