Ext.ns('app.grid');

app.grid.base = Ext.extend(Ext.grid.GridPanel,{
	PPanel : null,
	pageDisplayRow : 10,
	searchTool:null,
	initComponent : function(){
		this.bbar= new Ext.PagingToolbar({
	        pageSize: this.pageDisplayRow,
	        store: this.store,
	        displayInfo: true,
	        displayMsg: '<span style="color:#333">Нийт {2} байгаагаас {0} - {1} харагдаж байна</span>',
            emptyMsg: '<span style="color:#333">Бичлэг алга байна</span>'
	    });
		
		this.on('render',function(){
			this.store.baseParams = this.store.baseParams || {};
	        this.store.baseParams.start = 0;
	        this.store.baseParams.limit = this.pageDisplayRow;
			this.store.load();
		},this);
		this.searchTool = new Ext.ux.form.SearchField({
			store : this.store,
			paramName : 'searchq',
			emptyText: 'Хайх ...'
		});
		this.tbar = this.tbar || [];
		this.tbar.push('->');
		this.tbar.push(this.searchTool);  
		app.grid.base.superclass.initComponent.call(this);
		
	},
	addFilterParam : function(key,value,reLoad){
		this.store.baseParams[key]=value;
		if(reLoad == true){

			this.store.reload({params:{start:0}});
			this.PPanel.activate(this);
		}
	}
	
});
app.grid.sound = Ext.extend(app.grid.base,{
	title: 'Дууны жагсаалт',
	initComponent : function(){
	this.store = new Ext.data.JsonStore({
		root: 'data',
		totalProperty: 'total',
		idProperty: 'sound_id',
		remoteSort: true,
		fields: [{
			name : 'sound_id',
			type : 'int',
			css : 'background-color: #f0f0f0;'
		},{
			name : 'pl',
			mapping : 'sound_id'
		},
		'name', 'artists','albums','ganre', 'group' , 'on', 'urt','read','download','type','bestof'
		],
		proxy: new Ext.data.HttpProxy({
				url: '/grids/list'
			})
		});
		this.columns=[{
			header: "№",
			dataIndex: "sound_id",
			fixed : true,
			menuDisabled : true,
			sortable: true,
			css : 'color:#555; background-color: #ddd;',
			width : 50,
			align : 'right',
			renderer : function(v){
				if(v < 10)
					return "0000"+v;
				else if(v <100)
					return "000"+v;
				else if(v <1000)
					return "00"+v;
				else if(v <10000)
					return "0"+v;
				return v;
			}
		},{
			header: " ",
			dataIndex: "bestof",
			fixed : true,
			menuDisabled : true,
			width : 30,
			renderer : function(v,md){
				if(v == null) ;
				else {
					md.css += " bestof";
				}
				return ' ' ;
			}
		},{
			header: "Нэр",
			dataIndex: "name",
			sortable: true,
			width : 200,
			renderer : function(v,md,rec){
				md.css +=" sound-label";
				return String.format('<a href="#" sound_id="{1}" field="name"  onclick="return false" >{0}</a>',v,rec.id);
			}
		},{
			header: " ",
			dataIndex: "pl",
			fixed : true,
			menuDisabled : true,
			width : 30,
			renderer : function(v,md,rec){
				return String.format('<div class="PL-add" sound_id="{0}">&nbsp;</div>',rec.id);
			}
		},{
			header: "Дуучин",
			dataIndex: "artists",
			sortable: false,
			width : 120,
			renderer : function(v){
				if(v == null) return ' ';
				var a = '<a href="#" artist_id="{0}" label="{1}" field="artist" onclick="return false" >{1}</a>',z="",ret="";
				Ext.each(v,function(it){
					var name = it.ner;
					if(!Ext.isEmpty(it.ovog)){
						name = it.ovog+". "+name;
					}
					ret += z+String.format(a,it.artist_id,name);
					z = ", ";
				});	
				return ret;
			}
		},{
			header: "Цомог",
			dataIndex: "albums",
			sortable: false,
			width : 120,
			renderer : function(v){
				if(v == null) return ' ';
				var a = '<a href="#" album_id="{0}" label="{1}" field="album" onclick="return false" >{1}</a>',z="",ret="";
				Ext.each(v,function(it){
					ret += z+String.format(a,it.album_id,it.ner);
					z = ", ";
				});	
				return ret;
			}
		},{
			header: "Урсгал",
			dataIndex: "ganre",
			sortable: false
		},{
			header: "Төрөл",
			dataIndex: "group",
			sortable: false
		},{
			header: "Огноо",
			dataIndex: "on",
			sortable: true,
			width : 60,
			fixed : true
		},{
			header: "Урт",
			dataIndex: "urt",
			sortable: true,
			fixed : true,
			renderer : function(v){
				var m=  parseInt(v/60);
				var s=  v%60;
				return m+":"+s;
			}
		},{
			header: "Сонсон",
			dataIndex: "read",
			sortable: true,
			hidden : true
		},{
			header: "Татсан",
			dataIndex: "download",
			sortable: true,
			hidden : true
			
		}];
		
		
		this.on('cellclick',this.cellClick,this);
		app.grid.sound.superclass.initComponent.call(this);
		this.searchTool.emptyText = "Дуу хайх ...";
		//tt.add(all,'-',mon,' ',gad);
	},
	eng_monFn : function (radioBox,checked){
		if(checked){
			this.store.baseParams.eng_mon = radioBox.value;
			this.store.reload({params:{start:0}});
		}
	},
	cellClick : function(g,ri,ci,e){
		var target = e.getTarget();
		if(target){
			if(target.tagName == 'A'){
				switch(target.getAttribute('field')){
					case 'name':
						this.PPanel.fireEvent('soundPlay',target.getAttribute('sound_id'));
						break;
					case 'artist':
						this.PPanel.fireEvent('showListFromArtists',target.getAttribute('artist_id'),target.getAttribute('label'));
						break;
					case 'album':
						this.PPanel.fireEvent('showListFromAlbums',target.getAttribute('album_id'),target.getAttribute('label'));
						break;
				}
			}else if(target.tagName == 'DIV'){
				if(target.className=="PL-add"){
					this.PPanel.fireEvent('addPlayList',target.getAttribute('sound_id'));
				}
			}
		}
	}

});

app.grid.soundFull = Ext.extend(app.grid.sound,{
	title: 'Дууны жагсаалт',
	initComponent : function(){
		var all = new Ext.form.Radio({
			boxLabel : 'Бүгд',
			name : 'test',
			value : 0,
			checked : true
		});
		all.on('check',this.eng_monFn,this);
		var mon = new Ext.form.Radio({
			boxLabel : 'Монгол дуу',
			name : 'test',
			value : 1
		});
		mon.on('check',this.eng_monFn,this);
		var gad = new Ext.form.Radio({
			boxLabel : 'Гадаад дуу',
			name : 'test',
			value : 2
		});
		gad.on('check',this.eng_monFn,this);
		
		
		
		this.tbar=[all,'-',mon,' ',gad];
		app.grid.soundFull.superclass.initComponent.call(this);
		this.store.baseParams.eng_mon = 0;
	}
});
