var gi_store;
var elemstr = 'elem';
var fktID;
var fktCaption;
var waitwin;
var ktonnewtab = false;

function createKerTabPanel(id, caption, fieldnamerow, fieldnamecol, tabcelltype) {
	fktID = id;
	fktCaption = caption;
	
	Ext.Ajax.request({
		url: 'phpk/tab/kertab_dat.php',
		success: createKerTabPanelFromData,
		failure: failureModelLoadKerTab,
		params: {
			fnr: fieldnamerow,
			fnc : fieldnamecol,
			t : tabcelltype
		}
	});
}
function failureModelLoadKerTab(response, options){
	Ext.Msg.alert('EHR','A kiszolgáló nem érhető el.');
}

function createKerTabPanelFromData(response, options) {

	var data = Ext.decode(response.responseText);

	var store = new Ext.data.Store({
      reader: new Ext.data.JsonReader({root: "recs"}, data.rc),
      data: data,
      sortInfo:{field: 'sorcap', direction: "ASC"}
  });

	var grid = new Ext.grid.GridPanel({
		store: store,		
		columns: data.cols,
		enableColumnHide: false,
		bbar:[{
			text: 'MS Excel mentés',
			minWidth: 150,
			handler: function(btn) {
				Ext.Msg.alert("Hiba", "A kiszolgáló nem válaszol.");
			} 
		},{
			text: 'Pdf mentés',
			minWidth: 150,
			handler: function(btn) {
				Ext.Msg.alert("Hiba", "Hiba a pdf fájl készítése közben: A kiszolgáló nem válaszol.");
			} 
		}]
	});
		
	var alp = centertabs.findBy(function(cmp) {
		return ((!ktonnewtab) && (cmp.id.substr(0, 11) == 'kertabpanel')) || (cmp.id == 'kertabpanel'+fktID);
	});
	
	if ((alp.length>0)&&(alp[0] != undefined)) {
		centertabs.remove(alp[0]);
		alp[0].hide();
		alp[0].destroy();
	}
	ktonnewtab = false;
	
	var p = new Ext.Panel({
		title : /*'Kimutatás: '+*/fktCaption,
		id : 'kertabpanel'+fktID,
		iconCls: 'pivtabpanel',
		layout:'fit',
		border : false,
		closable: true,
		items: [grid]
	});
	centertabs.add(p);
	centertabs.setActiveTab(p);
	waitwin.hide();
}

function getKerTabPanel() {
	return new Ext.Panel({
		title : 'Kimutatások',
		id : 'kertabmenu',
		iconCls : 'pivtabs',
		border : false,
		layout : 'border',
	  items : [
			getFixKerTabTree(),
			getKTPageButtons()
		]
	});
}

function getKertabButton(caption) {
	var btn = new Ext.Button({
		text : caption,
		minWidth : 204,
		iconCls : 'btndefptab',
		handler : function () {
	        var valasz = hezJog('func',4,'csakreg');
			if(valasz){					
				showKerTabWin();
			}				
		}
	});
	return new Ext.Panel({
		region : 'south',
		border : false,
		buttonAlign : 'center',
		buttons: [btn]
	});
}

function getKTPageButtons() {
	var btnnewpage = new Ext.Button({
		text : "Új fülre",
		minWidth : 100,
		iconCls : 'btnnewptab',
		handler : function() {
			var valasz = hezJog('func',4,'csakreg');
			if(valasz){						
				ktonnewtab = true;
				btnclickNewKT();
			}
		}
	});
	var btnlastpage = new Ext.Button({
		text : "Meglevő fülre",
		minWidth : 100,
		iconCls : 'btnrefreshptab',
		handler : function() { 
			var valasz = hezJog('func',4,'csakreg');
			if(valasz){					
				ktonnewtab = false;
				btnclickNewKT()
			}
		}
	});
	return new Ext.Panel({
		baseCls: 'x-plain',
		region : 'south',
		border : false,
		buttonAlign : 'center',
		layout : 'fit',
		items : [getKertabButton("Egyedi kimutatás definiálása")],
		buttons: [btnnewpage, btnlastpage]
	});
}

function btnclickNewKT() {
	var tree = Ext.getCmp('kertabtree');
	if (tree==undefined)
		return;
	var node = tree.getSelectionModel().getSelectedNode();
	if ((node==undefined)||(!node.isLeaf()))
		return;
//	alert(node.text);
	var valasz = hezJog('func',4,'csakreg');
	if(valasz){					
		makeFixKerTab(node.id, node.text);
	}	
}

function makeFixKerTab(id, caption) {
	var ktid = id.substr(0,id.length-1);
	var kttip = id.substr(id.length-1,1);//id[id.length-1];
//	alert(kttip + ", "+id);
	var p = ktid.indexOf('!');
	var mezosor = ktid.substr(0,p).toUpperCase(); 
	var mezooszl = ktid.substr(p+1,ktid.length-p-1).toUpperCase();

	waitwin = Ext.MessageBox.wait("'"+caption+"' kimutatás készítése...","Egységes Hídnyilvántartási Rendszer");
	createKerTabPanel(id, caption, mezosor,mezooszl,kttip);
}

function getFixKerTabTree(){
	var Tree = Ext.tree;
	var kerTabTree = new Tree.TreePanel({
				id: 'kertabtree',
				autoScroll : true,
				border : false,				
				region : 'center',
				rootVisible: false,
				containerScroll : true,			
				loader : new Tree.TreeLoader({
							dataUrl : 'phpk/fixtree.php'
						})
	});
	var kerTabTreeRoot = new Tree.AsyncTreeNode({
				text : 'Fix tablók',
				draggable : false,
				id : 'kertabtreeroot'
	});		
	kerTabTree.setRootNode(kerTabTreeRoot);

	kerTabTree.on("dblclick", function(node) {
		if (node.leaf) {
			var valasz = hezJog('func',4,'csakreg');
			if(valasz){					
				ktonnewtab = false;
				makeFixKerTab(node.id, node.text);
			}
		}
	});

	kerTabTreeRoot.expand(false, false);
	return kerTabTree;
}
function kertabDBRenderer (value, meta, record, row, col, store) {
  return addSeparatorsNF(value)+ " híd";
}

function kertabHOSSZRenderer (value, meta, record, row, col, store) {
  return addSeparatorsNF(value/100) +" m";
}

function kertabFELULRenderer (value, meta, record, row, col, store) {
  return addSeparatorsNF(value)+ " m&sup2;";
}

function addSeparatorsNF(nStr)
{
	var inD=".";
	var outD=",";
	var sep=" ";
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}
	return nStr + nStrEnd;
}

