var terkepre = true;
function getSearchResultPanel() { 
	var hszamAdat;
	var grid = Ext.getCmp('searchresultgrid');
	
	if (grid == undefined) {

		var ds = getHszamDataStore();
		//var cm = getSearchGridColumnModel();

		function onItemToggle(item, pressed){
			terkepre = pressed;
		//	        Ext.Msg.alert('Gombállapot', 'Be van nyomva a gomb? -> '+pressed);
			var grid = Ext.getCmp('searchresultgrid');
			var store = grid.store;
			hszamdsLoad(store);
		}

		 var terkepreButton = new Ext.Action({
	        text: 'Térképre',
			enableToggle: true,
        	toggleHandler: onItemToggle,
       		pressed: true,	
	        handler: function(){
				terkepreButton.setIconClass(terkepreButton.getIconClass() == 'ok' ? 'cancel' : 'ok');
	        },
	        iconCls: 'ok'
	    });
			
		var pagingBar = new Ext.PagingToolbar({
	        pageSize: 100,
	        store: ds,
	        displayInfo: false,
//	        displayMsg: '{2} híd, {0}-{1}',
	        emptyMsg: "",
			border : false,
			region :'north',
			items: ['-',terkepreButton]
	    });
   		pagingBar.beforePageText = "";
    	pagingBar.afterPageText = "/ {0} ";
////////////////////////
		 Ext.ToolTip.prototype.onTargetOver =
		    	Ext.ToolTip.prototype.onTargetOver.createInterceptor(function(e) {
		    		this.baseTarget = e.getTarget();
		    	});
		    Ext.ToolTip.prototype.onMouseMove =
		    	Ext.ToolTip.prototype.onMouseMove.createInterceptor(function(e) {
						
		    		if ((this.baseTarget!=null) && (!e.within(this.baseTarget))) {
		    			this.onTargetOver(e);
		    			return false;
		    		}
    	});
/////////////////////////  	
		grid = new Ext.grid.GridPanel({
				id : 'searchresultgrid',
			  	store : ds,
				border : false,
				region: 'center',
				sm : getResultGridSelectionModel(),
				columns: [
	            	{id:'hnevfield',header: "Híd neve", width: 235, menuDisabled: true, dataIndex: 'tablanev'},
					{hidden: true, dataIndex: 'nev'},
					{hidden: true, dataIndex: 'hszam'},
	            	{hidden: true, dataIndex: 'hely'},
					{hidden: true, dataIndex: 'hnem'},
					{hidden: true, dataIndex: 'fekves'},
					{hidden: true, dataIndex: 'hepev'},
					{hidden: true, dataIndex: 'htelep'}
	        	],
	     		height:350,
	      		viewConfig : {forceFit: true},
//		   		title:'Array Grid',
		    	bbar: buttonChange,
///////////////////////////
				onRender: function() {
		        	Ext.grid.GridPanel.prototype.onRender.apply(this, arguments);
		        	this.addEvents("beforetooltipshow");
			        this.tooltip = new Ext.ToolTip({
			        	renderTo: Ext.getBody(),
			        	target: this.view.mainBody,
			        	listeners: {
			        		beforeshow: function(qt) {
			        			var v = this.getView();
					            var row = v.findRowIndex(qt.baseTarget);
					            var cell = v.findCellIndex(qt.baseTarget);
					            this.fireEvent("beforetooltipshow", this, row, cell);
			        		},
			        		scope: this
			        	}
			        });
		        },
				listeners: {
					render: function(g) {
						g.on("beforetooltipshow", function(grid, row, col) {
							var record = grid.getStore().getAt(row);
							var hidszam = grid.getColumnModel().getDataIndex(2);
							var hidnev = grid.getColumnModel().getDataIndex(1);
							var hidhely = grid.getColumnModel().getDataIndex(3);
							var hidneme = grid.getColumnModel().getDataIndex(4);
							var hidfekves = grid.getColumnModel().getDataIndex(5);
							var hidev = grid.getColumnModel().getDataIndex(6);
							var hidtelep = grid.getColumnModel().getDataIndex(7);
							hszamAdat = record.get(hidszam);
							hnevAdat = record.get(hidnev);
							helyAdat = record.get(hidhely);
							nemAdat = record.get(hidneme);
							fekvesAdat = record.get(hidfekves);
							evAdat = record.get(hidev);
							telepAdat = record.get(hidtelep);
							grid.tooltip.body.update(hszamAdat + "<br>" + hnevAdat+ " <br>"+telepAdat+", "+fekvesAdat+"<br>"+ helyAdat+"<br>"+nemAdat+", "+evAdat);
						});
					}
				}
///////////////////////////				
		});
		grid.addListener({	
			 'cellclick':{
				fn: function(grid, rowIndex, columnIndex, event){
					var record = grid.getStore().getAt(rowIndex);
					var fieldName = grid.getColumnModel().getDataIndex(2);
					var hidnev = grid.getColumnModel().getDataIndex(1);
					hszamAdat = record.get(fieldName);
					hnevAdat = record.get(hidnev);
				}
				,scope:this
			 },
			'celldblclick':{
				fn: function(grid, rowIndex, columnIndex, event){
					var record = grid.getStore().getAt(rowIndex);
					var fieldName = grid.getColumnModel().getDataIndex(2);
					var hidnev = grid.getColumnModel().getDataIndex(1);
					hszamAdat = record.get(fieldName);
					hnevAdat = record.get(hidnev);		
					var valasz = hezJog('func',1,'nemreg');
					if (valasz) {
						openNewFul = 1;
						showHidPanel(hszamAdat,hnevAdat);
					}
					else {
						openNewFul = 1;
						showHidPanel(hszamAdat,hnevAdat);
//						Ext.Msg.alert('Nem regisztrált felhasználó', 'Ön nincs bejelentkezve, ezért a hídnak csupán a legalapvetőbb információi jelennek meg');
					}
				}
				,scope:this
			 }
		});
	}
	
	var felsoPanel = new Ext.Panel({
		height: 50,
		id : 'searchbar',
		region : 'north',
		border : false,
		items: [{
			id : 'searchmsg',
			border : false,
			height: 18,
			style: ' body {font: 11px Arial, Helvetica, sans-serif;}',
			html :''
		},{
			id : 'searchmsg2',
			border : false,
			height: 18,
			style: ' body {font: 11px Arial, Helvetica, sans-serif;}',
			html :''
		},pagingBar]
	
	});
/*
	var buttonChange = new Ext.Panel({
		region:'south',
		buttonAlign:'center',
			buttons:[{
				xtype:'button',
				bodyStyle:'align: center',
				text:'Adatlap csere', 
				minWidth:80,
				handler:function(){ 
						if (hszamAdat != '') {
							openNewFul = 1;
							showHidPanel(hszamAdat);
						}
				} 
			},{
				xtype:'button',
				bodyStyle:'align: center',
				text:'Új adatlap', 
				minWidth:80,
				handler:function(){ 
						if (hszamAdat != '') {
							openNewFul = 2;   
							showHidPanel(hszamAdat);
						}
				} 
			}]
	});
	*/
  var minwidth = 100;
  var buttonChange = new Ext.Panel({
		baseCls: 'x-plain',
    layout: 'column',
    region: 'south',
    anchor: '100%',
    border: false,
		height : 28,
		
    defaultType: 'panel',
    items: [{
      columnWidth: 0.45,
			baseCls: 'x-plain',
      border: false,
      height: 35
    }, {
			baseCls: 'x-plain',
      width: minwidth + 10,
      border: false,
      style: 'align: center; text-align: center; padding: 5px 0px 0px 0px',
      items: [{
        xtype: 'button',
        minWidth: minwidth,
        iconCls : 'btnnewpage',
        text: 'Új adatlap',
        handler: function() {
			if (hszamAdat != undefined) {
				var valasz = hezJog('func', 1, 'csakreg');
				if (valasz) {
					openNewFul = 2;
					showHidPanel(hszamAdat,hnevAdat);
				}
			}
			else
				Ext.Msg.alert('Hiányzó adat','Válasszon ki egy hidat!');
     	 }
      }]
    }, {
			baseCls: 'x-plain',
columnWidth: 0.1,
      border: false
    }, {
			baseCls: 'x-plain',
      width: minwidth + 10,
      border: false,
      style: 'align: center; text-align: center; padding: 5px 0px 0px 0px',
      items: [{
        xtype: 'button',
        minWidth: minwidth,
      //  iconCls: iconcls,
        text: 'Adatlap csere',			
        iconCls : 'btnrefreshpage',
        handler: function() {
		      if (hszamAdat != undefined) {  
				var valasz = hezJog('func',1,'nemreg');
				if (valasz) {
					openNewFul = 1;
					showHidPanel(hszamAdat,hnevAdat);
				}
				else {
					openNewFul = 1;
					showHidPanel(hszamAdat,hnevAdat);
	//				Ext.Msg.alert('Nem regisztrált felhasználó', 'Ön nincs bejelentkezve, ezért a hídnak csupán a legalapvetőbb információi jelennek meg');
				}
			}
			else
				Ext.Msg.alert('Hiányzó adat','Válasszon ki egy hidat!');
		}
      }]
    }, {
			baseCls: 'x-plain',
      columnWidth: 0.45,
      border: false
    }]
  });
	return new Ext.Panel({
		layout : 'border',
		border : false,
		items : [felsoPanel, grid, buttonChange]
	});
			
};

function showHidPanel(hszam,hnev) {
	hidViewPanel(hszam,hnev);
}

function getHszamDataStore() {
	var store = Ext.getCmp('searchdatastore');
	if (store == undefined) {
		store = new Ext.data.JsonStore({
			url: 'phpk/hidlist.php',
			root: 'hidak',
			totalProperty: 'totalcount',
			idProperty: 'hszam',
			remoteSort: true,
			fields: ['tablanev','hszam', 'nev', 'hely', 'x', 'y', 'tip', 'hnem', 'fekves', 'hepev', 'htelep'],
			id: 'hszam',
			listeners: {
				load: hszamdsLoad
			}
		});
	}
	return store;
};

function hszamdsLoad(store, records, options) {
	
	if ((store.getTotalCount() > 100) && (szaznaltobb != 1)) {
		szaznaltobbsor();
	}	
	var p = Ext.getCmp('sep');
	var bar = p.findById('searchbar');
	var msg2 = p.findById('searchmsg2');
	var msg = p.findById('searchmsg');
	var ossz = store.getTotalCount();
	if(ossz == 0)
		msg2.body.update(' Nem található a feltételnek megfelelő híd');
	else
		msg2.body.update(' '+ossz+' híd, '+Math.ceil(ossz/100)+' oldalon. ');
	p.doLayout();	

  if (ahidmarker != undefined) {
    map.removeOverlay(ahidmarker);
    ahidmarker = null;
  }
  if (terkepre == true) {
  	if (mm == undefined) 
  		mm = new MarkerManager(map, {
  			borderPadding: 1
  		});
  	else 
  		mm.clearMarkers();
  	var gmarkers = [];
  	var icong = getIcon("green");
  	var icono = getIcon("orange");
  	
  	store.each(function(r){
  		var x = r.get("x");
  		var y = r.get("y");
  		var point = new GLatLng(y, x);
  		var m;
  		var titlestr = r.get("nev") + '; ' + r.get("hely") + '; ' + r.get('x') + ', ' + r.get('y');
  		if (r.get("tip") == "K") 
  			m = new GMarker(point, {
  				icon: icono,
  				title: titlestr
  			});
  		else 
  			m = new GMarker(point, {
  				icon: icong,
  				title: titlestr
  			});
  		GEvent.addListener(m, "dblclick", function(){
  			var valasz = hezJog('func', 1, 'nemreg');
  			if (valasz) {
  				openNewFul = 1;
  				showHidPanel(r.get("hszam"), r.get("nev"));
  			}
  			else {
  				openNewFul = 1;
  				showHidPanel(r.get("hszam"), r.get("nev"));
  				//				Ext.Msg.alert('Nem regisztrált felhasználó', 'Ön nincs bejelentkezve, ezért a hídnak csupán a legalapvetőbb információi jelennek meg');
			}
		});
				
		m.show();
		gmarkers.push(m);
	});
	mm.addMarkers(gmarkers, 7, 17);
	mm.refresh();
	}
  else {
	if (mm != undefined) 
  		mm.clearMarkers();
		mm.refresh();
  }
};

function getIcon(color) {
	if (color == undefined)
		color = "red";
icon = new GIcon();
	if (color == "green")
		icon.image = "pics/Hid9GreenT.png";
	if (color == "red")
		icon.image = "pics/Hid9RedT.png";
	if (color == "orange")
		icon.image = "pics/Hid9BlueT.png";
    icon.shadow = "pics/Hid9Sha.png";
    icon.iconSize = new GSize(27, 27);
	icon.shadowSize = new GSize(51, 27);
    icon.iconAnchor = new GPoint(13, 26);
    icon.infoWindowAnchor = new GPoint(5, 1);
    return icon;
};

function getResultGridSelectionModel() {
	sm = new Ext.grid.RowSelectionModel({
	listeners: {rowSelect: searchgridRowSelect}
	});
	return sm;
};

var ahidmarker;
var mm;

function searchgridRowSelect(sm, rowIndex, rec) {
	var x = rec.get("x");
	var y = rec.get("y");
	var n = rec.get("nev");
	//alert("select x: "+x+", y: "+y);
	if ((x==1000) || (y==1000)){
		if (ahidmarker!=undefined) {
			map.removeOverlay(ahidmarker);
			ahidmarker = null;
		}		
		return;
	}
		
	var point = new GLatLng(y,x);
	
	
	if (ahidmarker!=undefined) {
		map.removeOverlay(ahidmarker);
		ahidmarker = null;
	}
	
	ahidmarker = new GMarker(point,{icon:getIcon('red') ,title:n, zIndexProcess: function(){return 1;}});
	GEvent.addListener(ahidmarker, "dblclick", function() {
		var valasz = hezJog('func',1,'nemreg');
		if (valasz) {
			openNewFul = 1;
			showHidPanel(rec.get("hszam"),rec.get("nev"));
		}
		else {
			openNewFul = 1;
			showHidPanel(rec.get("hszam"),rec.get("nev"));
//			Ext.Msg.alert('Nem regisztrált felhasználó', 'Ön nincs bejelentkezve, ezért a hídnak csupán a legalapvetőbb információi jelennek meg');
		}
	});
  map.addOverlay(ahidmarker);
  
  if (!map.getBounds().contains(point))
 		 map.setCenter(point);
}
