var gi_store;
var elemstr = 'elem';

function createAltLekPanel(tabdef) {
/*teszt
	tabdef = "{\"tabtipid\" : \"1\", \"mezok\": [{\"mezo1\": \"HSZAM\", \"csop\": \"0\",\"sum\": \"0\"},";
	tabdef += "{\"mezo1\": \"HNEV\", \"csop\": \"0\", \"sum\": \"0\"},{\"mezo1\": \"HENEV\", \"csop\": \"0\",";
	tabdef += " \"sum\": \"0\"},{\"mezo1\": \"MEGYE\", \"csop\": \"1\", \"sum\": \"0\"}]}";
*/
	Ext.Ajax.request({
		url: 'phpk/tab/altlek_mdl.php',
		success: createAltLekPanelFromDefs,
		failure: failureModelLoad,
		params: {
			def: tabdef
		}
	});
}
function failureModelLoad(response, options){
	Ext.Msg.alert('EHR','A kiszolgáló nem érhető el.');
}

function createAltLekPanelFromDefs(response, options) {

	var models = Ext.decode(response.responseText);
	if (models.desc == 'A META adatok lekérése nem sikerült.'){
		Ext.Msg.alert('EHR',models.desc);
		return;
	}	
	var sql = models.sql;
	var sqlgr = models.sqlgr;
	var sqlgrkod = models.sqlgrkod;
	var tabdef = Ext.encode(models.td);
	
	var elemstr_array = new Array("elem","híd","beavatkozás","közmű","terv","korlátozás","nyílás", "keresztmetszeti elem", "támasz", "hídelem", "akadály");
	elemstr = elemstr_array[models.td.tabtipid]; 
	
	gi_store = new Ext.data.JsonStore({
		url: 'phpk/tab/altlek_grp.php',
		root: "grcnt",
		id: 'gk',
		fields: ['gk', 'cnt', 'desc', 'h', 'f', 'hf']
	});
	gi_store.load({params: {'def': tabdef,'sqlgr': sqlgr,'sqlgrkod': sqlgrkod}});
	
	var gstore = new Ext.data.GroupingStore({
		proxy: new Ext.data.HttpProxy({
			url: 'phpk/tab/altlek_dat.php'
		}),
		baseParams: {
			sql: sql
		},
		reader: new Ext.data.JsonReader(models.rc, models.rf),
		remoteGroup: true,
		remoteSort: true,
		groupField: 'TABCSOP' // This is my grouping ID
	});
	
	var pagingBar = new Ext.PagingToolbar({
		pageSize: 100,
		store: gstore,
		displayInfo: true,
		displayMsg: 'Sorok: {0} - {1}, összesen: {2}',
		beforePageText: "",
		afterPageText: ". oldal, össz.: {0}",
		emptyMsg: "Nincs megjeleníthető adat"
	});
	
	var grid = new Ext.grid.GridPanel({
		store: gstore,
		//		height: 700,		
		columns: models.gc,
		enableColumnHide: false,
		view: new Ext.grid.GroupingView({
			forceFit: true,
			enableGroupingMenu: false,
			sortAscText: "Emelkedő sorrend",
			sortDescText: "Csökkenő sorrend",
			groupTextTpl: '{group}'
		}),
		//frame: true,
		//title: 'Teszt lekérdezés',
		bbar: pagingBar,
		listeners: {
			celldblclick: dblclickGridCell
		}
	});
	

	/*grid.getStore().addListener('load',function(store, records, options) {
	 alert("records: "+records.length+", store: "+store.getCount());
	 alert(Ext.encode(store.reader.jsonData));
	 alert(store.reader.meta);
	 
	 });
	 */
	grid.getStore().load({
		params: {
			//	sql : sql,
			groupBy: 'tipus',
			start: 0,
			limit: 100
		}
	});
	
  var alp = centertabs.findById('altlekpanel');
  if (alp != undefined) {
    centertabs.remove(alp);
    alp.hide();
    alp.destroy();
  }
	
	var p= new Ext.Panel({
		title : 'Egyedi táblázat',
		id : 'altlekpanel',
		layout:'fit',
		border : false,
		closable: true,
		items: [grid]
	});
	centertabs.add(p);
	centertabs.setActiveTab(p);
		
	pagingBar.addButton([{
			xtype: 'tbbutton',
			text: 'MS Excel mentés',
			minWidth: 150,
			handler: function(){
				Ext.Msg.alert("Hiba", "A kiszolgáló nem válaszol.");
			}
		},{
			xtype: 'tbbutton',
			text: 'PDF mentés',
			minWidth: 150,
			handler: function(){
				Ext.Msg.alert("Hiba", "Hiba a pdf fájl készítése közben: A kiszolgáló nem válaszol.");
			}
		}]);
	
}

function gridGroupRenderer(v, unused, r, rowIndex, colIndex, ds) {
	var girec = gi_store.getById(v);
	//console.log(girec.get('cnt'));
	if (girec == undefined) 
		return v;	
	else 
		if (v == '$$$') 
			grouplabel = 'Összesen : ' + girec.get('cnt') + ' ' + elemstr;
		else 
			if (v == 'ZZNULL') 
				grouplabel = 'Nincs feltöltve (NULL) : ' + girec.get('cnt') + ' ' + elemstr;
			else 
				if (v == 'ZZURES') 
					grouplabel = 'Nincs megadva érték : ' + girec.get('cnt') + ' ' + elemstr;
				else 
					if (girec.get('desc') == '') 
						grouplabel = v + ' ' + girec.get('cnt') + ' elem';
					else 
						grouplabel = girec.get('desc') + ': ' + girec.get('cnt') + ' ' + elemstr;
	
	return grouplabel + ', Szerk.hossz: ' + girec.get('h')+' m, Hídfelület: '+girec.get('f') + ' m2, Hasznos felület: '+girec.get('hf') + 'm2';
}

function dblclickGridCell(grid, rowIndex, columnIndex, e) {
	var r = grid.store.getAt(rowIndex);
	var hszam = r.get('HSZAM');
	showHidPanel(hszam);
}
